【发布时间】:2011-01-29 17:44:27
【问题描述】:
我正在用 PHP 编写一个图像生成脚本,并以两种方式工作。一种方法很慢,但使用的内存量有限,第二种方法要快得多,但使用 6 倍的内存。两个脚本都没有泄漏(据我所知)。
在有限的基准测试中,它们的表现如下:
------------------------------------------ 方法 |总时间 |峰值内存 |图片 ------------------------------------------ 一 | 65.626 | 540,036 | 200 二 | 20.207 | 3,269,600 | 200 ------------------------------------------这是之前数字的平均值(如果您不想自己计算):
------------------------------------------ 方法 |总时间 |峰值内存 |图片 ------------------------------------------ 一 | 0.328 | 540,036 | 1 二 | 0.101 | 3,269,600 | 1 ------------------------------------------我应该使用哪种方法以及为什么?
我预计会有大量用户使用此脚本,每个用户在正常访问期间会对该脚本发出 10-20 次请求。
我倾向于更快的方法,因为虽然它使用更多内存,但它只占用了 1/3 的时间,并且会减少并发请求的数量。
更新:我能够改进第二个选项并提出第三个选项,将内存使用量几乎减少了一半。一个接一个地运行新的数字,这就是新的基准:
------------------------------------------ 方法 |总时间 |峰值内存 |图片 ------------------------------------------ 一 | 51.901 | 798,900 | 200 二 | 12.039 | 3,269,600 | 200 三 | 13.667 | 1,815,624 | 200 ------------------------------------------感谢您的指导和帮助!
【问题讨论】:
-
为什么不让它成为后台进程?
-
@Col。弹片——嗯,通常一次只创建一个,它需要被实时预览页面引用。所以它必须根据要求生成。 (当第二次请求确切的图像时,我还将使用缓存)。
标签: php optimization memory performance