1

巨大な python オブジェクト ~15G を圧縮してディスクに保存しようとしています。要件の制約により、このファイルを可能な限り圧縮する必要があります。現在、zlib.compress(9) を使用しています。私の主な関心事は、圧縮中にシステム 32g で使用できるメモリを超えるメモリが使用され、今後オブジェクトのサイズが増加することが予想されることです。これを達成するためのより効率的/より良い方法はありますか? ありがとう。

更新:また、保存したいオブジェクトはスパースなnumpyマトリックスであり、圧縮する前にデータをシリアル化しているため、メモリ消費量も増加することに注意してください。シリアル化された後は python オブジェクトは必要ないので、gc.collect() は役に立ちますか?

4

2 に答える 2

5

増分 (解凍) 圧縮はzlib.{de,}compressobj()、メモリ消費を最小限に抑えるために実行する必要があります。さらに、代わりに を使用することで、ほとんどのデータでより高い圧縮率を実現できますbz2

于 2013-01-17T22:31:21.050 に答える
0

の memLevel パラメーターはdeflateInit2 ()、内部圧縮状態に割り当てるメモリの量を指定します。デフォルトは8、最大値は9、最小値は です1( zlib のマニュアルを参照してください)。既にそれを試した場合、または十分に役に立たない場合は、代わりに別の圧縮アルゴリズムまたはライブラリを調べる必要があるかもしれません。

于 2013-01-17T22:41:31.827 に答える