2011-07-21 86 views
3

你有沒有使用「gzcompress」在PHP壓縮巨大文件的一些經驗? 更高效的是用tar壓縮一個shell中的同一個文件? 更準確地說: 這樣巨大的文件是直接在PHP中壓縮的。 PHP腳本每天都通過cron作業運行。 我的直覺告訴我這比在系統shell中直接執行tar要慢。 但這仍然只是我的直覺:)問題是如果它更慢?如果是,那麼差異可能會有多大?尤其是當我們談論執行時間時的差異。gzip巨大的文件(〜30G)在PHP

+0

不會爲PHP調用該作業。我會推薦'system('gzip -1c myfile> myfile.gz');'或者簡單地''system('gzip -1 myfile');' –

+2

你有一個20+的ram系統嗎?請記住,gzcompress在IN MEMORY中工作,所以您需要能夠緩存生成的gzip數據。在最糟糕的情況下,gzip實際上可以增加數據的大小,而你需要超過30gig來保存它。 –

+0

爲什麼這麼大的文件?這是一次性事情還是這是一個持續的問題? –

回答

3

它似乎並不像我的PHP網絡工作。這是否需要交付或轉移?我會將這類事情放入隊列中,以便在shell中通過cron作業進行處理。

+0

這是一個以cronjob身份運行的日常例程。 – Robert

+0

你一定會更好使用gzip uncompressed.txt> compressed.txt.gz。 – Jordan

1

PHP不會比tar + gzip更快,並且會對您的Web服務進程造成更多的負擔。我將重新設計應用程序以將gzip請求添加到隊列(數據庫,文件系統等),立即以「您的請求正在工作......」的形式返回,並且每隔N秒元刷新頁面,直到另一個進程(cron作業)完成了這項工作,然後將下載鏈接返回到完成的二進制文件。

+0

我會以同樣的方式做到這一點。問題是如果這種解決方案(直接gziping在PHP中)更慢?如果是關於我們談論的差異有多大? – Robert