第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么?Python 3 中的 json 庫(kù)是用 C/C++ 還是其他低級(jí)語(yǔ)言編寫的?

為什么?Python 3 中的 json 庫(kù)是用 C/C++ 還是其他低級(jí)語(yǔ)言編寫的?

qq_花開(kāi)花謝_0 2022-09-27 10:44:11
眾所周知,C/C++在很多情況下都比蟒蛇快。我朝這個(gè)方向做了一個(gè)測(cè)試。我有一個(gè)包含2200行的大型(美化)JSON文件。測(cè)試包括讀取文件,反序列化內(nèi)存中的數(shù)據(jù)(我使用字典作為數(shù)據(jù)結(jié)構(gòu))和顯示內(nèi)容。我使用內(nèi)置的 json 庫(kù)在 python 中執(zhí)行了測(cè)試,C++使用外部 nlohmann JSON 庫(kù)執(zhí)行了測(cè)試。運(yùn)行幾次后,我震驚地發(fā)現(xiàn),C++需要0.01秒,Python 3大約需要0.001秒,這幾乎是10倍!我在文檔中搜索了一下,但沒(méi)有找到有關(guān)編寫庫(kù)時(shí)使用的內(nèi)容的信息。jsonC++:#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 jsonfrom time import timet1 = time()with open('output.json','r+') as f:    f = json.load(f)    print(f)t2 = time()elapsed = t2 - t1print('elapsed time: '+str(elapsed))最后一個(gè)問(wèn)題,Python庫(kù)是用任何低級(jí)語(yǔ)言編寫的,這是性能的主要原因,還是只是純粹的Python?json
查看完整描述

2 回答

?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊

一個(gè)寫得很差的圖書館,不管它寫成什么語(yǔ)言,都可以給你帶來(lái)巨大的速度。

C++中有一些專門的和高度優(yōu)化的JSON解析器,包括快速json和simdjson,請(qǐng)參閱最近的比較:

https://lemire.me/blog/2020/03/31/we-released-simdjson-0-3-the-fastest-json-parser-in-the-world-is-even-better/


查看完整回答
反對(duì) 回復(fù) 2022-09-27
?
30秒到達(dá)戰(zhàn)場(chǎng)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

眾所周知,C/C++在很多情況下都比蟒蛇快。

在很多情況下,并非總是如此。

當(dāng)然,如果你的C/C++代碼寫得很糟糕,它可以像你想要的那樣慢。

我使用內(nèi)置的json庫(kù)在python中執(zhí)行了測(cè)試,C++使用外部的nlohmann JSON庫(kù)進(jìn)行了測(cè)試。

JSON 庫(kù)比其他替代方法慢。它絕對(duì)有可能比CPython的實(shí)現(xiàn)慢。如果您需要速度,請(qǐng)使用另一個(gè)庫(kù)。nlohmann

話雖如此,請(qǐng)注意,基準(zhǔn)測(cè)試很難。@Jesper和@idclev提到的情況可能是,在編譯C++代碼時(shí),您只是缺少優(yōu)化。

json庫(kù)是用任何低級(jí)語(yǔ)言編寫的,這是性能的主要原因,還是只是純粹的python?

是的,正如@jonrsharpe指出的那樣,CPython實(shí)現(xiàn)是用C編寫的。


查看完整回答
反對(duì) 回復(fù) 2022-09-27
  • 2 回答
  • 0 關(guān)注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)