【发布时间】:2015-02-26 13:35:47
【问题描述】:
我必须将大约 5,000 张图像保存到磁盘,而我的脚本运行速度非常慢。其中,我的脚本包含一个foreach 循环,它将图像保存到磁盘。我想问题出在file_put_contents 函数上,因为当我评论它时,一切都很好。
这是我的代码:
file_put_contents($pathimg . '.jpg', file_get_contents($url));
file_put_contents($pathimg . '.jpg', file_get_contents($url3));
有没有办法更快地保存这些图像?
【问题讨论】:
-
可能你的磁盘运行缓慢
-
它基于您的系统处理速度我 tihnk..
-
可能是您的系统执行了过多的 I/O。为您的 php 进程允许更多内存可能有助于将 php.ini 中的 memory_limit 修改为
memory_limit = 512MB。还可以尝试实现睡眠,以防止您的脚本一次写入 5000 张图像 -
在这里考虑 io 速度 - 图像有多大?即您希望写入磁盘的数据的总大小是多少?源图像和目标图像是否在同一个磁盘上?磁盘最近是否进行过“碎片整理”?我注意到您正在使用“url”来读取图像 - 您读取图像文件的速度有多快(兆字节/秒)?
-
我的理解是,文件传输速度是受来源限制的,是外部的。谢谢你澄清这一点。除了可能与他们协商更高的下载带宽之外,您对此无能为力。