13.2 cPickle -- より高速な pickle

cPickle モジュールは Python オブジェクトの直列化および 非直列化をサポートし、pickle モジュールとほとんど同じインタフェースと機能を提供します。 いくつか相違点がありますが、最も重要な違いはパフォーマンスと サブクラス化が可能かどうかです。

第一に、cPickle は C で実装されているため、pickle よりも最大で 1000 倍高速です。第二に、cPickle モジュール 内では、呼び出し可能オブジェクト Pickler() および Unpickler() は関数で、クラスではありません。 つまり、pickle 化や unpickle 化を行うカスタムのサブクラスを 導出することができないということです。 多くのアプリケーションではこの機能は不要なので、cPickle モジュールによる大きなパフォーマンス向上の恩恵を受けられるはず です。picklecPickle で作られた pickle データ列は同じなので、既存の pickle データに対して picklecPickle を互換に使用することができます 13.10

cPicklepickle の API 間には他にも些細な相違が ありますが、ほとんどのアプリケーションで互換性があります。 より詳細なドキュメンテーションは pickle のドキュメント にあり、そこでドキュメント化されている相違点について挙げています。



脚注

... を互換に使用することができます13.10
pickle データ形式は実際には小規模なスタック指向のプログラム 言語であり、またあるオブジェクトをエンコードする際に多少の自由度が あるため、二つのモジュールが同じ入力オブジェクトに対して異なる データ列を生成することもあります。しかし、常に互いに他のデータ列 を読み出せることが保証されています。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。