国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python中5個json庫的速度對比

whjin / 1401人閱讀

摘要:數(shù)據(jù)量較少時(shí),速度幾乎沒有區(qū)別,無所謂選擇哪一個。數(shù)據(jù)量大的情況下,的總體表現(xiàn)最好,但序列化不如而中,如果只是一個對象,可以直接使用用法為默認(rèn)采用內(nèi)置方式進(jìn)格式化后返回。

python中json的序列化與反序列化有很多庫,具體選擇使用哪一個,或者哪一個速度更快呢?

先上結(jié)果

json序列化與反序列化速度對比(按總時(shí)間排序:測試數(shù)據(jù)100 * 10000)

ujson           序列化: 2.084    反序列化: 1.157      總時(shí)間: 3.241
yajl            序列化: 1.910    反序列化: 1.970      總時(shí)間: 3.880
cjson           序列化: 3.305    反序列化: 1.328      總時(shí)間: 4.632
simplejson      序列化: 10.279   反序列化: 4.658      總時(shí)間: 14.937
stdlib json     序列化: 7.013    反序列化: 8.594      總時(shí)間: 15.607

其中,除了stdlib json也就是內(nèi)置的json.dumps外,其他都是第三方包。數(shù)據(jù)量較少時(shí),速度幾乎沒有區(qū)別,無所謂選擇哪一個。數(shù)據(jù)量大的情況下,ujson的總體表現(xiàn)最好,但序列化不如yajl

而django中,如果只是response一個json對象,可以直接使用JsonResonse

用法為:

>>> from django.http import JsonResponse
>>> response = JsonResponse({"foo": "bar"})
>>> response.content
"{"foo": "bar"}"

默認(rèn)采用內(nèi)置方式進(jìn)json格式化后返回。如果數(shù)據(jù)不多,著實(shí)方便(django1.7引入)

測試代碼

來自rtyler,在其基礎(chǔ)上新增了ujson

import time

import pickle
import yajl

try:
    import cjson
except ImportError:
    cjson = None
try:
    import simplejson
except ImportError:
    simplejson = None
try:
    import ujson
except ImportError:
    ujson = None

try:
    import json
except ImportError:
    json = None

default_data = {
    "name": "Foo",
    "type": "Bar",
    "count": 1,
    "info": {
        "x": 203,
        "y": 102, }, }


def ttt(f, data=None, x=100 * 10000):
    start = time.time()
    while x:
        x -= 1
        foo = f(data)
    return time.time() - start


def profile(serial, deserial, data=None, x=100 * 10000):
    if not data:
        data = default_data
    squashed = serial(data)
    return (ttt(serial, data, x), ttt(deserial, squashed, x))


def test(serial, deserial, data=None):
    if not data:
        data = default_data
    assert deserial(serial(data)) == data


contenders = [
    ("yajl", (yajl.Encoder().encode, yajl.Decoder().decode)),
]
if cjson:
    contenders.append(("cjson", (cjson.encode, cjson.decode)))
if simplejson:
    contenders.append(("simplejson", (simplejson.dumps, simplejson.loads)))
if json:
    contenders.append(("stdlib json", (json.dumps, json.loads)))
if ujson:
    contenders.append(("ujson", (ujson.dumps, ujson.loads)))

for name, args in contenders:
    test(*args)
    x, y = profile(*args)
    print("%-11s serialize: %0.3f  deserialize: %0.3f  total: %0.3f" % (
        name, x, y, x + y))

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/42571.html

相關(guān)文章

  • Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---12、部署相關(guān)庫的安裝:Docker、Scrapyd

    摘要:阿里云安裝腳本安裝腳本兩個腳本可以任選其一,速度都非常不錯。推薦的加速器有和阿里云。阿里云不同平臺的鏡像加速方法配置可以參考的官方文檔。以上便是的安裝方式說明。上一篇文章網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)爬蟲框架的安裝下一篇文章網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)部署相關(guān)庫 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---11、爬蟲框架的安裝:ScrapySplash、ScrapyRedis下一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---...

    ityouknow 評論0 收藏0
  • python 和 ruby的對比

    摘要:的解析器實(shí)現(xiàn)更成熟,第三方庫質(zhì)量高解析器盡管已經(jīng)有了很大的性能提升和很多新的功能,但是從源代碼實(shí)現(xiàn)的角度來說,基本上是通過在源代碼上打來增加功能的。相對而言,解析器更成熟,也比較穩(wěn)定。 最近在考慮學(xué)習(xí)一門后端語言,在ruby和python直接猶豫,然后自己做了一些對比,希望能幫到有同樣問題的你。 一、異同對比選擇1、Python和ruby的相同點(diǎn): 都強(qiáng)調(diào)語法簡單,都具有更一般的表達(dá)...

    ghnor 評論0 收藏0
  • 一文看懂npm、yarn、pnpm之間的區(qū)別

    摘要:請注意,在版本號之前有個字符。理論上,次版本號的變化并不會影響向后兼容性。雖然可以通過命令關(guān)閉在版本號前面使用的默認(rèn)行為,但這個只會影響頂級依賴關(guān)系。 本文作者對比了當(dāng)前主流的包管理工具npm、yarn、pnpm之間的區(qū)別,并提出了合適的使用建議,以下為譯文: NPM npm是Node.js能夠如此成功的主要原因之一。npm團(tuán)隊(duì)做了很多的工作,以確保npm保持向后兼容,并在不同的環(huán)境中...

    zgbgx 評論0 收藏0
  • Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---29、解析庫的使用:BeautifulSoup

    摘要:解析器在解析的時(shí)候?qū)嶋H上是依賴于解析器的,它除了支持標(biāo)準(zhǔn)庫中的解析器,還支持一些第三方的解析器比如,下面我們對支持的解析器及它們的一些優(yōu)缺點(diǎn)做一個簡單的對比。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---28、解析庫的使用:XPath下一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---30、解析庫的使用:PyQuery 前面我們介紹了正則表達(dá)式的相關(guān)用法,但是一旦正則寫的有問題,可能得到的就...

    MockingBird 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<