我正在运行PHP 5.6.3。 我的一个专业项目包括一个解压缩功能:
// ZIP file to extract
$my_file = "repository.zip";
$zip = new ZipArchive;
if ($zip->open($my_file) === TRUE)
{
//Unpack all files from zip
$zip->extractTo($this->target_directory);
}
$zip->close();
...在大型ZIP文件(约300Mo)上处理。
我做了很多执行时间基准,我发现extractTo()函数超过总处理时间的90%/ 95%(20秒)!最糟糕的是,ZIP大小将在接下来的几周内增加(可能高达500 Mo)。
有没有办法优化我脚本的这一部分? 知道我确实从ZIP中提取所有文件。
感谢。
答案 0 :(得分:1)
有没有办法优化我的脚本的这一部分?
不 - 它是一行代码,只调用一次。很明显,没有办法优化它。
我怀疑你真正想知道的是你是否可以获得解压缩的文件 - 这是一个非常不同的问题。
extractTo()函数超过总处理时间的90%/ 95%(20秒)
经过的时间? CPU时间? PHP执行时间?
可能有更快获得结果的余地,但您没有提出正确的问题。你不会在这里找到解决方案 - 我们无法访问你的系统来为你修复它。
由于您没有告诉我们关于操作系统和硬件的任何信息,我们进一步限制了我们可以给出的建议。转向更快的CPU可能有所帮助 - 但根据您提供的信息,我们不知道它的CPU或存储I / O是否是这里的瓶颈。你如何让整个系统更快地填满一本大书(我知道,我已经写了一本书)。
在PHP之外进行提取可能有所帮助。
使用不同的压缩算法可能有所帮助。
创建多个文件并将它们并行解压缩可能有所帮助。
....但你也没有告诉我们这里的限制。