前言
如果有業務需要將一個數據塞進隊列由另一端接收,我們就需要考慮到數據的大小,因為這跟隊列的效率和穩定性正相關,如果你希望能對這部分數據進行一定的壓縮,並且提高解壓縮的效率時,希望你能想到 msgpack
正文
性能對比
效率
這里先放出測試的數據
我們將網頁源代碼與其他數據組成dict,使用JSON和msgpack進行轉換,每次轉換都為dict轉換目標格式再轉換回來
循環1000次打印耗費時間
代碼如下
結果如下
大小
我們數據不變,修改測試代碼為下圖,意為打印轉換后的長度和轉換后的數據
結果為
使用
是不是對這種效果滿意,那么我們開始使用
安裝
pip install umsgpack
轉換
import umsgpack
umsgpack可方便地將大部分數據格式轉換,需要注意的是datetime類型等Python獨有的無法正常轉換(跟json限制差不多)
packd = umsgpack.packb(t)
umsgpack.packb可將數據轉換為bytes類型的數據
res = umsgpack.unpackb(packd)
umsgpack.unpackb將轉換后的bytes數據轉換為Python使用的數據格式