Якщо ви переймаєтесь швидкістю та простором, використовуйте cPickle, оскільки cPickle швидший, ніж JSON.
Якщо ви більше переймаєтесь інтероперабельністю, безпекою та / або читабельністю для людей, тоді використовуйте JSON.
Результати тестів, на які посилаються інші відповіді, були записані в 2010 році, а оновлені тести в 2016 році за допомогою протоколу 2 cPickle показують:
- cPickle 3.8x швидше завантаження
- cPickle на 1,5 рази швидше читання
- cPickle трохи менше кодування
Відтворіть це самостійно за допомогою цієї суті , яка базується на орієнтирі Костянтина, на який посилається в інших відповідях, але використовуючи cPickle з протоколом 2 замість соління, а також використовуйте json замість simplejson (оскільки json швидший, ніж Simplejson ), наприклад
wget https://gist.github.com/jdimatteo/af317ef24ccf1b3fa91f4399902bb534/raw/03e8dbab11b5605bc572bc117c8ac34cfa959a70/pickle_vs_json.py
python pickle_vs_json.py
Результати з python 2.7 на гідному процесорі Xeon 2015 року:
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 з маринованим протоколом 3 ще швидший.