我正在运行php 5.6.3。我的专业项目之一包括DEZIP功能:
// 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秒)!最糟糕的是,在接下来的几周内,拉链尺寸将增加(也许是500 mo)。
有没有办法优化我脚本的这一部分?知道我确实有从zip中提取所有文件。
谢谢。
有没有办法优化我脚本的这一部分?
no-它是一行代码,称为一次。显然没有办法优化它。
我怀疑您真正想知道的是,如果您可以将文件解压缩Sonner - 这是一个非常不同的问题。
extractto()函数的总处理时间
的90%/95%(20秒)
经过的时间?CPU时间?PHP执行时间?
可能会有更快地获得结果的范围,但是您没有提出正确的问题。您不会在这里找到解决方案 - 我们无法访问您的系统来为您进行修复。
由于您对此的操作系统和硬件没有任何告诉我们,因此我们在可以提供的建议中受到了进一步的限制。移至更快的CPU可能会有所帮助 - 但是根据您提供的信息,我们不知道其CPU还是存储I/O是瓶颈。您如何使整个系统更快地填写一本大书(我知道,我写了一本)。
在PHP外进行提取可能会有所帮助。
使用不同的压缩算法可能会有所帮助。
创建多个文件并并行解压缩可能会有所帮助。
....但是您也没有告诉我们这里的约束。