cPickle モジュールは Python オブジェクトの直列化および 非直列化をサポートし、pickle モジュールとほとんど同じインタフェースと機能を提供します。 いくつか相違点がありますが、最も重要な違いはパフォーマンスと サブクラス化が可能かどうかです。
第一に、cPickle は C で実装されているため、pickle よりも最大で 1000 倍高速です。第二に、cPickle モジュール 内では、呼び出し可能オブジェクト Pickler() および Unpickler() は関数で、クラスではありません。 つまり、pickle 化や unpickle 化を行うカスタムのサブクラスを 導出することができないということです。 多くのアプリケーションではこの機能は不要なので、cPickle モジュールによる大きなパフォーマンス向上の恩恵を受けられるはず です。pickle と cPickle で作られた pickle データ列は同じなので、既存の pickle データに対して pickle と cPickle を互換に使用することができます 3.11。
cPickle と pickle の API 間には他にも些細な相違が ありますが、ほとんどのアプリケーションで互換性があります。 より詳細なドキュメンテーションは pickle のドキュメント にあり、そこでドキュメント化されている相違点について挙げています。