我必须处理大量图像(10 MB /图像)php - 如何确定执行时间?
如何确定处理队列中所有图像的执行时间?
从我们的数据中确定时间基准。
设置时间限制。
运行过程。
什么做的执行时间取决于? (服务器,网络速度,数据的类型...?)
@All: 我已经改变了我的方式做我的问题,发送1reqeust/1image,
所以有40张图片,我们将有40请求。没必要在意excution时间:d
感谢
我必须处理大量图像(10 MB /图像)php - 如何确定执行时间?
如何确定处理队列中所有图像的执行时间?
从我们的数据中确定时间基准。
设置时间限制。
运行过程。
什么做的执行时间取决于? (服务器,网络速度,数据的类型...?)
@All: 我已经改变了我的方式做我的问题,发送1reqeust/1image,
所以有40张图片,我们将有40请求。没必要在意excution时间:d
感谢
您可以用代码
// first image
$start = time();
// ... work on image ...
$elapsed = time() - $start;
if (ini_get('max_execution_time') > $elapsed * $imageCount)
trigger_warning("may be not able to finish in time", E_USER_WARNING);
请注意两件事测试设置:在PHP的CLI版本中,是max_execution_time仅仅硬编码到0/inifinity(根据this comment)。此外,您还可以通过再次调用set_time_limit()
像这样复位定时器:
foreach ($imagelist as $image) {
// ... do image work ....
// reset timer to 30
set_time_limit(30);
}
这样的话,你可以让你的脚本永远,或者至少运行,直到你与你的图像处理完毕。您必须在apache配置中启用适当的覆盖规则以允许通过AllowOverride All
请注意,服务器的处理时间可以变化取决于来自其它processess服务器上的当前负载了很多。如果它是一个共享服务器,其他用户可以在这个确切的时间运行一些脚本,使您的脚本只执行一半。
我认为这将是很难确定前的脚本运行的执行时间。
我会上传图片的批次(收费)。图像的数量取决于一些测试。
例如,从不同的页面上同时运行脚本几次,看他们是否都还没有完全打破。如果它适用于队列中的5个图像,请编写脚本以处理5个图像。在处理了前五个图像后,将它们存储起来(写入数据库或任何您需要的),稍等一会,然后取下5张图像。
如果运行三个脚本在同一时间每5个图像一切正常,你应该是安全的与任何服务器上的一些其他用户正在做着做着一次。
您更改文件php.ini
中的时间执行时间限制,或者如果您无权访问该文件,您可以使用set_time_limit(600)
进行600秒的动态设置。然而,我会写更聪明的代码,而不是依赖时间限制。
我的5美分。祝你好运!
您究竟在做什么(什么类型的处理,图像来自哪里......)以及您为什么需要确定预先持续时间? –
恩:我已创建了图片大拇指。 30岁:我们可以处理20张图片5mb /图片。如果我处理超过20张图像,我想知道处理时间。否则处理将被打破:( – Chameron
你想计算X图像的平均时间 – ComFreek