亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

看我打臉Message Pack

3fuyu / 1163人閱讀

摘要:然后看出來的文件,恩,浪費(fèi)我的時(shí)間然后不死心結(jié)果還是次恩,真是雞肋啊

總之網(wǎng)站上說得很好啦:http://msgpack.org/,又快,生成的文件又小等等,總之就是很牛逼的救世主咯

因?yàn)槿淌懿涣?pickle 的速度,所以嘗試切換一下。

import pickle
import msgpack
import gc

a = list(range(10000*10000))

def dump1():
    with open("1", "wb") as f:
        pickle.dump(a, f)

def dump2():
    with open("2", "wb") as f:
        msgpack.dump(a, f)

def dump3():
    gc.disable()
    with open("2", "wb") as f:
        msgpack.dump(a, f)
    gc.enable()

然后測速,有 dump3 的原因是官方網(wǎng)站說關(guān)閉gc有奇效:

CPython"s GC starts when growing allocated object. This means unpacking may cause useless GC. You can use gc.disable() when unpacking large message.

恩,先看測試結(jié)果(測試了10次):

dump1: 1 loop, best of 3: 3.98 s per loop
dump2: 1 loop, best of 10: 5.22 s per loop
dump3: 1 loop, best of 10: 5.13 s per loop

恩,徹底打臉了。關(guān)閉gc也沒有奇效。

然后看dump出來的文件 (=,=b):

-rw-r--r--  1 chendx  staff   477M  8 11 18:43 1
-rw-r--r--  1 chendx  staff   477M  8 11 18:49 2

恩,浪費(fèi)我的時(shí)間……


然后不死心

def load1():
    with open("1", "rb") as f:
        pickle.load(f)

def load2():
    with open("2", "rb") as f:
        msgpack.load(f)

結(jié)果(還是10次)

load1: 1 loop, best of 10: 6.78 s per loop
load2: 1 loop, best of 10: 5.91 s per loop

恩,真是雞肋啊

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

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/45488.html

相關(guān)文章

  • [譯][Tkinter 教程11] 對話框和消息框

    摘要:已獲原作者授權(quán)原系列地址簡介提供了一系列的對話框可以用來顯示文本消息提示警告信息和錯(cuò)誤信息選擇文件或顏色其他一些簡單的對話框還可以請求用戶輸入文本整數(shù)或數(shù)字下面是一個(gè)典型的對話框使用場景在應(yīng)用程序中經(jīng)常會(huì)有退出按鈕如下點(diǎn)擊按鈕會(huì)彈出一個(gè)確認(rèn) 已獲原作者授權(quán). 原系列地址: Python Tkinter 簡介 Tkinter 提供了一系列的對話框, 可以用來顯示文本消息, 提示警告信息...

    Anchorer 評論0 收藏0
  • 你不知道WebSocket嗎?

    摘要:什么是是一種在單個(gè)連接上進(jìn)行全雙工通信的協(xié)議。短輪詢配段代碼,靜態(tài)服務(wù)中間件用來返回靜態(tài)文件當(dāng)前價(jià)格是元獲取最新價(jià)格接口客戶端不停的發(fā)送請求,去服務(wù)端獲取最新價(jià)格。它通過連接到一個(gè)服務(wù)器,以格式接收事件不關(guān)閉連接。 什么是WebSocket? WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議。這里我們發(fā)現(xiàn)了一個(gè)有趣的詞:全雙工,那我們就來簡單了解下通信方式有哪些! 單工 ...

    techstay 評論0 收藏0
  • 你不知道WebSocket嗎?

    摘要:什么是是一種在單個(gè)連接上進(jìn)行全雙工通信的協(xié)議。短輪詢配段代碼,靜態(tài)服務(wù)中間件用來返回靜態(tài)文件當(dāng)前價(jià)格是元獲取最新價(jià)格接口客戶端不停的發(fā)送請求,去服務(wù)端獲取最新價(jià)格。它通過連接到一個(gè)服務(wù)器,以格式接收事件不關(guān)閉連接。 什么是WebSocket? WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議。這里我們發(fā)現(xiàn)了一個(gè)有趣的詞:全雙工,那我們就來簡單了解下通信方式有哪些! 單工 ...

    remcarpediem 評論0 收藏0
  • 在tornado中使用tcpserver和tcpclient實(shí)現(xiàn)echo服務(wù)器

    摘要:本文主要介紹了在框架中使用實(shí)現(xiàn)簡單服務(wù)器的過程。在網(wǎng)絡(luò)通信中,需要發(fā)送二進(jìn)制流數(shù)據(jù)函數(shù)負(fù)責(zé)數(shù)據(jù)組包,即將數(shù)據(jù)按照規(guī)定的傳輸協(xié)議組合起來函數(shù)負(fù)責(zé)數(shù)據(jù)拆包,即按照規(guī)定的協(xié)議將數(shù)據(jù)拆分開來。不多說,具體實(shí)現(xiàn)代碼咱們來看一下。 本文主要介紹了在tornado框架中,使用tcpserver,tcpclient,struct.pack(),struct.unpack實(shí)現(xiàn)簡單echo服務(wù)器的過程。 ...

    liukai90 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<