我开始在
PHP中使用功能性编程范例,并且想知道性能影响是什么.有些谷歌似乎只是说有一些.具体来说,我想知道:
>真的有性能影响还是城市传奇?
>什么是性能影响(希望有人做了基准测试)?
>什么原因导致这种影响(如果存在)?
>是固定成本还是执行?
任何资源,你们将会非常感激:)
提前致谢
我用array_map()做了一些测试,用:
>函数的名称(array_map(‘test’,$myArray);)
>包含一个闭包的变量(array_map($test,$myArray);)
>一个闭包(array_map(function {}(),$myArray);)
在所有三种情况下,函数为空(function test(){})
具有1.000.000个项目($myArray = range(1,1000000);)的数组的结果)
Function: 0.693s Variable:0.703s Closure: 0.694s
对于一个10.000.000个项目的数组,结果是这样的:
Function: 8.913s Variable: 8.169s Closure: 8.117s
所以在这两种情况下,我们都有很多开销,如果有的话.
另请参阅http://fabien.potencier.org/article/17/on-php-5-3-lambda-functions-and-closures的第4条评论得出同样的结论.在该评论中,您还会看到create_function()显着较慢.