Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的gzip大型文件(~30G)_Php - Fatal编程技术网

PHP中的gzip大型文件(~30G)

PHP中的gzip大型文件(~30G),php,Php,你们中有谁有使用“gzcompress”在PHP中压缩大型文件的经验吗? 更有效的方法是使用tar在shell中压缩同一个文件? 更确切地说: 如此巨大的文件是直接用PHP压缩的。PHP脚本每天都通过cron作业运行。 我的直觉告诉我,这比在系统外壳中直接执行tar要慢。 但这仍然只是我的直觉:)问题是它是否更慢?如果是,差异会有多大?差异,尤其是当我们谈论执行时间时。对我来说,这不像是一个PHP web作业。这是按需发货还是转帐?我会把这类事情放在一个队列中,由shell中的cron作业处理。

你们中有谁有使用“gzcompress”在PHP中压缩大型文件的经验吗? 更有效的方法是使用tar在shell中压缩同一个文件? 更确切地说: 如此巨大的文件是直接用PHP压缩的。PHP脚本每天都通过cron作业运行。 我的直觉告诉我,这比在系统外壳中直接执行tar要慢。
但这仍然只是我的直觉:)问题是它是否更慢?如果是,差异会有多大?差异,尤其是当我们谈论执行时间时。

对我来说,这不像是一个PHP web作业。这是按需发货还是转帐?我会把这类事情放在一个队列中,由shell中的cron作业处理。

PHP不会比tar+gzip快多少,而且会对您的web服务进程造成更大的负担。我会重新设计应用程序,将gzip请求添加到队列(数据库、文件系统等),立即返回“您的请求正在工作…”,每隔N秒对页面进行元刷新,直到另一个进程(cron作业)完成工作,然后返回一个到已完成二进制文件的下载链接。

不会将其称为PHP作业。我推荐
system('gzip-1cmyfile>myfile.gz')或简单地
系统('gzip-1 myfile')您的系统是否有超过20吉位的ram?请记住,gzcompress在内存中工作,因此您需要能够缓冲生成的gzip数据。在最坏的情况下,gzip实际上可以增加数据的大小,而您需要超过30gig才能保存它。为什么要保存这么大的文件?这是一次性的还是持续的问题?我在一个系统中发现了这样的东西(不是我创造的)。我只是很惊讶。文件是直接在PHP中gzip的。机器有12G内存PHP内存限制设置为-1(无限制),我也会这样做。问题是这样的解决方案(直接在PHP中进行gziping)是否较慢?如果是关于我们谈论的差异有多大?这是作为cronjob运行的日常例行程序。使用gzip uncompressed.txt>compressed.txt.gz肯定会更好。