github.com/fancycode/pylzma/blob/master/doc/usage.txt にストリーム (圧縮解除) の使用例がありますが、常に 1 バイト単位で読み取るため、明らかに比較的遅くなる可能性があります。
ただし、大きなサイズ (たとえば 65k) で読み取り、そのまま実行obj.decompress()
すると、大きなファイルでは問題が生じます。その結果、pylzma はほとんどのデータを内部に保存し、obj.flush()
.
decompress
メソッドにはbufsize
パラメーターがあります (デフォルトでは 128k のようです) 。30*read_size (30 はおおよその圧縮率) 以上に設定すると、解凍が意図したとおりに (そして非常に高速に) 動作します。ただし、これは明らかに破綻します。たとえば、数ギガバイトの 0 バイトで壊れます (圧縮率がはるかに高くなるため)。
したがって、質問: pylzma でファイルを適切に (解凍) 圧縮する方法 (速度のために適切なバッファー サイズを使用) は?