C/C++ 因在许多情况下比 python 更快而闻名。我朝这个方向做了一个测试。
我有一个包含 2200 行的大型(美化的)JSON 文件。测试包括读取文件、反序列化内存中的数据(我使用字典作为数据结构)并显示内容。
我使用内置json库在 python 中执行测试,并使用外部nlohmann JSON 库在 C++ 中执行测试。
运行几次后,我震惊地发现 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;
}
Run Code Online (Sandbox Code Playgroud)
和Python:
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))
Run Code Online (Sandbox Code Playgroud)
最后一个问题,jsonPython 库是用任何低级语言编写的(这是性能的主要原因),还是只是纯 Python?
| 归档时间: |
|
| 查看次数: |
3583 次 |
| 最近记录: |