Jika Anda terutama mementingkan kecepatan dan ruang, gunakan cPickle karena cPickle lebih cepat daripada JSON.
Jika Anda lebih mementingkan interoperabilitas, keamanan, dan / atau keterbacaan manusia, gunakan JSON.
Hasil tes yang direferensikan dalam jawaban lain dicatat pada tahun 2010, dan tes yang diperbarui pada tahun 2016 dengan protokol cPickle 2 menunjukkan:
- cPickle 3.8x memuat lebih cepat
- cPickle 1.5x lebih cepat membaca
- cPickle encoding sedikit lebih kecil
Reproduksi ini sendiri dengan intisari ini , yang didasarkan pada tolok ukur Konstantin yang dirujuk dalam jawaban lain, tetapi menggunakan cPickle dengan protokol 2 alih-alih acar, dan menggunakan json daripada simplejson (karena json lebih cepat daripada simplejson ), misalnya
wget https://gist.github.com/jdimatteo/af317ef24ccf1b3fa91f4399902bb534/raw/03e8dbab11b5605bc572bc117c8ac34cfa959a70/pickle_vs_json.py
python pickle_vs_json.py
Hasil dengan python 2.7 pada prosesor Xeon 2015 yang layak:
Dir Entries Method Time Length
dump 10 JSON 0.017 1484510
load 10 JSON 0.375 -
dump 10 Pickle 0.011 1428790
load 10 Pickle 0.098 -
dump 20 JSON 0.036 2969020
load 20 JSON 1.498 -
dump 20 Pickle 0.022 2857580
load 20 Pickle 0.394 -
dump 50 JSON 0.079 7422550
load 50 JSON 9.485 -
dump 50 Pickle 0.055 7143950
load 50 Pickle 2.518 -
dump 100 JSON 0.165 14845100
load 100 JSON 37.730 -
dump 100 Pickle 0.107 14287900
load 100 Pickle 9.907 -
Python 3.4 dengan protokol acar 3 bahkan lebih cepat.