众所周知,C/C++在很多情况下都比蟒蛇快。我朝这个方向做了一个测试。
我有一个包含2200行的大型(美化)JSON文件。测试包括读取文件,反序列化内存中的数据(我使用字典作为数据结构)和显示内容。
我使用内置的 json
库在 python 中执行了测试,C++使用外部 nlohmann JSON 库执行了测试。
运行几次后,我震惊地发现,C++需要0.01秒,Python 3大约需要0.001秒,这几乎是10倍!
我在文档中搜索了一下,但没有找到有关编写库时使用的内容的信息。json
C++:
#include <iostream>
#include <string.h>
#include <boost/property_tree/json_parser.hpp>
#include <boost/property_tree/ptree.hpp>
#include "nlohmann/json.hpp"
using namespace std;
using json = nlohmann::json;
namespace pt = boost::property_tree;
#include <ctime>
int main()
{
ifstream input;
input.open("input.json");
json json_data;
input >> json_data;
cout << json_data << endl;
return 0;
}
和蟒蛇:
import json
from time import time
t1 = time()
with open('output.json','r+') as f:
f = json.load(f)
print(f)
t2 = time()
elapsed = t2 - t1
print('elapsed time: '+str(elapsed))
最后一个问题,Python库是用任何低级语言编写的,这是性能的主要原因,还是只是纯粹的Python?json
白衣染霜花
30秒到达战场
相关分类