pickleモジュールは、pickle化時に文字列エスケープ文字を使用しているようです。これは、たとえばnumpy配列では非効率になります。次のことを考慮してください
z = numpy.zeros(1000, numpy.uint8)
len(z.dumps())
len(cPickle.dumps(z.dumps()))
長さはそれぞれ1133文字と4249文字です。
z.dumps()は「\ x00 \ x00」(文字列の実際のゼロ)のようなものを明らかにしますが、pickleは文字列のrepr()関数を使用しているようで、「'\ x00 \ x00'」(ゼロはASCIIゼロ)を生成します。
つまり、(z.dumps()の「0」== False)および(cPickle.dumps(z.dumps())の「0」== True)