pythonの連想配列シリアライズの速度比較 (simplejson vs pickle)
pythonで連想配列をDBに入れるときにシリアライズする方法を調べてみました。
最初はdjangoのsimplejsonを使うことを考えていましたが、
標準でpickleというモジュールがあることを知ったので速度比較してみました。
結果から見るとsimplejsonの方がシリアライズはわずかに速く、戻すのは2倍ぐらいかかりました。
encode json:
user 0m3.316s
decode json:
user 0m7.883s
encode pickle:
user 0m3.701s
decode pickle:
user 0m3.407s
ネストを含む連想配列dについて10000回ループしました。
使ったデータがマル秘だったのでソースコードは一部だけ載せておきます。
from django.utils import simplejson import pickle d = { #略 } j = simplejson.dumps(d) p = pickle.dumps(d) #以下の部分だけ4通り変えて計測 simplejson.dumps(j) #json encode simplejson.loads(d) #json decode pickle.dumps(p) #pickle encode pickle.loads(d) #pickle decode