脚本速度与内存使用率

我正在用PHP处理图像生成脚本,并且已经通过两种方式使它工作.一种方法很慢,但是使用了有限的内存,第二种则快得多,但是使用了6倍的内存.据我所知,这两个脚本都没有泄漏.

在有限的基准中,这是它们的执行方式:

--------------------------------------------
METHOD  | TOTAL TIME | PEAK MEMORY |  IMAGES
--------------------------------------------
One     |     65.626 |     540,036 |     200
Two     |     20.207 |   3,269,600 |     200
--------------------------------------------

这是先前数字的平均值(如果您不想自己做数学):

--------------------------------------------
METHOD  | TOTAL TIME | PEAK MEMORY |  IMAGES
--------------------------------------------
One     |      0.328 |     540,036 |       1
Two     |      0.101 |   3,269,600 |       1
--------------------------------------------

我应该使用哪种方法,为什么?

我预计大量用户会使用此脚本,每个用户在正常访问期间都会对此脚本发出10-20个请求.

我倾向于更快的方法,因为尽管它使用更多的内存,但是只占用了1/3的时间,并且会减少并发请求的数量.

更新:我能够优化第二个选项,并提出了第三个选项,将内存使用量几乎减少了一半.一个接一个地运行新数字,这是新基准:

--------------------------------------------
METHOD  | TOTAL TIME | PEAK MEMORY |  IMAGES
--------------------------------------------
One     |     51.901 |     798,900 |     200
Two     |     12.039 |   3,269,600 |     200
Three   |     13.667 |   1,815,624 |     200
--------------------------------------------

感谢您的指导和帮助!

解决方法:

我会选择第二个.它更快,这对最终用户总是有好处的.但是,公羊使用率很高,因此您必须权衡其他公羊的价格.将ram添加到服务器比添加一个全新的盒子要容易(且便宜).

另一方面,您是否同时描述了这两个方面?我相信您可以达成某种愉快的中间立场.类似于第二种算法的速度,但是第一种算法的内存使用情况.在做出决定之前,请通过xdebug运行它.

上一篇:JavaScript性能优化?


下一篇:python-优化生成变量的拒绝方法