C++でnlohmann/jsonを使い、1万近くの配列をJSONファイルから読み込んでいます。
各配列の要素数は15前後です。
以下のC++コードの
reading >> j
という部分に16秒ほど処理時間がかかり、困っています。
C++
1#include <vector> 2#include <fstream> 3#include <nlohmann/json.hpp> 4 5using json = nlohmann::json; 6 7int main() { 8 const std::string path = "a.json"; 9 std::fstream reading(path.c_str()); 10 json j; 11 reading >> j; 12 13 std::vector<std::string> abc = j["ABC"]; 14 std::cout << abc[1] << std::endl;
使うライブラリがnlohmann/jsonでは無くても良いので、reading >> jに該当する処理がどうすれば速くなるかをご教示下さい。
余談ですが、pythonだと一瞬で似た操作が済むので、同様の速さがc++に出ることを期待していました。python使えや、と思うかもしれませんが、jsonを読み込んだ後の計算処理がc++の方が圧倒的に速いので、このような問題に直面しています。
蛇足かもしれませんが、c++の
reading >> j;
という処理はpythonだと以下のコードになります。
python3
1import json 2 3f = open("a.json" , "r") 4fl = json.load(f)
回答2件
あなたの回答
tips
プレビュー