web-dev-qa-db-ja.com

PickleまたはcPickleを使用する必要がありますか?

Pythonには、シリアル化用のpickleモジュールとcPickleモジュールの両方があります。

cPickleには、pickle:速度よりも明らかな利点があります。 picklecPickleよりも優れているのは、もしあれば、何ですか?

39
user200783

pickleモジュールは、任意のPythonオブジェクトを一連のバイト。このプロセスは、オブジェクトのシリアル化とも呼ばれます。次に、オブジェクトを表すバイトストリームを送信または保存し、後で再構築して同じ特性を持つ新しいオブジェクトを作成できます。

cPickleモジュールは、同じアルゴリズムを実装します。[〜#〜] c [〜#〜]Pythonの代わりに。 Pythonの実装よりも何倍も高速ですが、ユーザーがPickleからサブクラス化することはできません。サブクラス化が使用に重要でない場合は、cPickleを使用することができます。

ソース 上記の情報。

44
rkatkam

PickleとcPickleに関してこれを見つけました。

「pickleモジュールは、任意のPythonオブジェクトを一連のバイトに変換するためのアルゴリズムを実装しています。..

CPickleモジュールは、Pythonの代わりにCで同じアルゴリズムを実装します。 何倍も高速 Python実装、ただし、ユーザーがPickleからサブクラス化することはできません。

サブクラス化が使用にとって重要でない場合は、cPickleを使用することをお勧めします。

ソース: https://pymotw.com/2/pickle/

7
Charlton Lane