Я начинаю использовать парадигмы функционального программирования в 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
Поэтому ни в одном случае у нас много накладных расходов, если они есть.
Также см. 4-й комментарий по http://fabien.potencier.org/article/17/on-php-5-3-lambda-functions-and-closures. Он приходит к тем же выводам. В этом комментарии вы также видите, что create_function()
значительно медленнее.