2011-07-21 29 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