json.dumps は pickle.dumps より約 2.62 倍遅い
同じ小さな dict を 2 万回シリアライズした場合、`pickle` のほうが `json` より約 2.6 倍速い。
結果
| 実行 | json.dumps | pickle.dumps | 倍率 |
|---|---|---|---|
| 実行 1 | 56.742 | 22.791 | 2.49× |
| 実行 2 | 56.495 | 21.661 | 2.61× |
| 実行 3 | 58.300 | 21.637 | 2.69× |
3 回のばらつき: json.dumps CV 1.4% / pickle.dumps CV 2.5% / 倍率 CV 3.2%
測った条件
4 キーの小さな dict を 20,000 回 dumps。pickle は protocol 5。
この数字が当てはまらない場面
可読性・相互運用性は json の利点で、速度だけでは選べません。信頼できないデータの unpickle は禁止です。
再現コマンド
cd bench && python micro_py.py --out ../data/run.json --samples 21