2011-07-21 37 views
3

"gzcompress"を使って巨大なファイルを圧縮する経験がありますか? より効率的ですtarを使って同じファイルをシェルで圧縮しますか? もっと正確には: そのような巨大なファイルは、PHPで直接gzipされています。 PHPスクリプトは毎日cronジョブで実行されています。 私の直感は、これがシステムシェルで直接tarを実行するよりも遅いことを伝えています。 これはまだ私の直感です:)質問はそれが遅い場合ですか?どれくらい大きな差があるのであれば、違いがありますか?特に実行時間について話しているときの違い。gzipの巨大なファイル(〜30G)

+0

PHP用のジョブを呼び出すことはできません。私は 'system( 'gzip -1c myfile> myfile.gz');または単に' system( 'gzip -1 myfile'); ' –

+2

システムを持っていますか? gzcompressはIN MEMORYで動作するので、結果として得られるgzipデータをバッファリングできる必要があることに注意してください。最悪の場合のシナリオでは、gzipは実際にデータのサイズを増やすことができ、それを保持するには30ギガ以上が必要です。 –

+0

なぜそのような大きなファイルですか?これは一度だけの問題なのでしょうか、これは問題になっていますか? –

答えて

3

私にはPHPウェブの仕事のようには見えません。これは配信や転送のためにgzipされていますか?シェルのcronジョブで処理するために、この種のものをキューに入れます。

+0

それはcronjobとして実行されている毎日のルーチンです。 – Robert

+0

あなたはgzip uncompressed.txt> compressed.txt.gzを使う方が良いでしょう。 – Jordan

1

PHPはtar + gzipより高速ではありません。あなたのWebサービスプロセスにはるかに負荷がかかります。私は、アプリケーションを再設計して、キュー(データベース、ファイルシステムなど)にgzipリクエストを追加し、「要求は作業中です...」とすぐに戻り、別のプロセス(cronジョブ)が作業を完了したら、完成したバイナリにダウンロードリンクを返します。

+0

私は同じようにそれをやるでしょう。問題は、そのようなソリューション(PHPで直接gziping)が遅い場合ですか?私たちが話している大きな違いがあれば? – Robert

関連する問題