PHP マニュアルには、gzdeflate に関する次のようなコメントがあります。
gzcompress は、エンコーディングに関する情報を文字列に埋め込むため、より長いデータを生成します。1 台のマシンでのみ処理されるデータを圧縮する場合は、これらの関数のどれを使用するかについて心配する必要はありません。ただし、これらの関数で圧縮されたデータを別のマシンに渡す場合は、gzcompress を使用する必要があります。
その後
さまざまなコンテンツで 50000 回の繰り返しを実行したところ、コンテンツと圧縮レベルに関係なく、gzdeflate() と gzcompress() の両方が同等に高速に実行されることがわかりましたが、gzinflate() は常に gzuncompress() の約 2 倍の速さでした。
私の目的のために、将来の使用のためにマシンにデータをアーカイブしています。データは頻繁に読み取られますが、書き込まれるのは 1 回だけです。理論的には、ある時点でサーバーを変更すると、いつか別のマシンに移動することになりますが、それは数年後のことです.
gzcompress と gzuncompress ではなく、gzdeflate と gzinflate を使用しても安全ですか?
私の考えは次のとおりです: gzinflate はより高速であり、これは多くの読み取り要求があるため、サーバーにとって非常に役立ちます。将来のある時点でファイルを読み取れなくなった場合、ファイルを解凍して再圧縮する方法を見つけられるはずですよね? 最初のコメントが言っているように、gzinflate がいつか魔法のように機能しなくなるわけではありません。6 バイトのヘッダーがなくても、何とか拡張できると確信しています。
考え?
更新 -- ベンチマーク
それぞれ 10,000 回の反復:
gzdeflate took 19.158888816833 seconds and size 18521
gzinflate took 1.4803981781006 seconds
gzcompress took 19.376484870911 seconds and size 18527
gzuncompress took 1.6339199542999 seconds
gzencode took 20.015944004059 seconds and size 18539
gzdecodetook 1.8822891712189 seconds