python序列化模塊marshal和cPickle的效率比較

python序列化模塊marshal和cPickle的效率比較

最近系統加入了異步請求,所以需要對象持久化!爲了將python對象持久化(比如爲了web app的session/cache需要)。我們不得不將其轉化成字符串以後存到文件或則是數據庫。

Python 提供了兩個基於 C 的模塊 cPickle 和 marshal 來做這個序列化反序列化的操作。marshal 貌似僅限於少數幾種 python 內置數據對象,所以想象起來好像 marshal 比 cPickle 要快一些,而且我們自己做的幾次benchmark好像也證明了這點。但實際上果真如此嗎?

經過嚴密的測試發現:序列化“字符串”的時候CPickle要比marshal快。反序列化的效率基本沒有什麼差別。

這裏一個老外給出了一個比較全面的測試結果,和使用建議。

Date: 2012-06-30T22:49+0800

Author: 駱志輝

Org version 7.8.11 with Emacs version 23

Validate XHTML 1.0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章