gpt4 book ai didi

PHP:创建 .tar 存档非常慢

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:46 36 4
gpt4 key购买 nike

我想使用下面的代码将大约 10.000 个文件打包到一个 .tar 存档中。存档的大小不会太大,不会超过几百 MB。我的问题是这需要很长时间。实际上我现在正在打包 9000 个文件一个小时。在 shell 上,这是在 2 分钟内完成的,它是一个运行 apache2 的强大的 linux 服务器。那么这里有什么问题呢?如何提高 PHP 脚本的速度?

$Path = str_replace('\\', '/', realpath($Path));

if (is_dir($Path) === true) {
$files = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($Path), \RecursiveIteratorIterator::SELF_FIRST);
$archive = new \PharData('/var/www/test.tar');

foreach ($files as $file) {
$filePath = $file->getRealPath();
$archive->addFile($filePath);
}

最佳答案

RecursiveIteratorIterator 相当慢...但问题是为什么要使用它?尝试 Phardata buildFromDirectory 函数:

<?php
...
if (is_dir($Path) === true) {
$archive = new PharData('/var/www/test.tar');
$archive->buildFromDirectory($Path);
}
...
?>

希望有帮助

关于PHP:创建 .tar 存档非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26215197/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com