我正在用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运行它.