PHP-Zip extractTo()性能

PHP-Zip extractTo()性能,php,benchmarking,php-5.6,Php,Benchmarking,Php 5.6,我正在运行PHP5.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->clos

我正在运行PHP5.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个月)

有没有办法优化我脚本的这一部分? 知道我确实有从ZIP中提取所有文件

谢谢

有没有办法优化我脚本的这一部分

否-这是一行代码,只调用一次。显然,没有办法对其进行优化

我想你真正想知道的是,你是否能把文件解压缩,sonner,这是一个完全不同的问题

extractTo()函数占总处理时间的90%/95%(20秒)以上

过去的时间是多少?CPU时间?PHP执行时间

也许可以更快地获得结果,但你没有提出正确的问题。您在这里无法获得解决方案-我们无法访问您的系统来为您修复它

由于您没有告诉我们有关此操作系统和硬件的任何信息,我们在提供建议方面受到了进一步的限制。转移到更快的CPU可能会有所帮助,但根据您提供的信息,我们不知道是CPU还是存储I/O,这是这里的瓶颈。如何使整个系统运行得更快将是一本大书(我知道,我写过一本)

在PHP之外进行提取可能会有所帮助

使用不同的压缩算法可能会有所帮助

创建多个文件并并行解压缩可能会有所帮助


……但是您也没有告诉我们这里的约束。

谁创建了zip文件?使用“更快”的压缩通常会导致更快的解压缩不知道为什么要用php进行此操作。@SalmanA此ZIP文件是由另一个Symfony应用程序生成的:“$this->zipArchive->open”(“repository.ZIP”,\zipArchive::CREATE)”+“$this->zipArchive->addFile()”@lawrencerone,因为解压文件的脚本是自动系统的一部分,我不能使用命令行。Hello@symcbean,因为我不是系统管理员,只是开发人员,所以我不具备服务器/基础设施方面的知识和技能。我希望ZipArchive原生PHP类可能会有一些参数或方法在特定情况下进行优化:你告诉我没有。20秒->我在extractTo()函数前后使用microtime()获得的PHP执行时间。