Подтвердить что ты не робот

Анонимная производительность функции в PHP

Я начинаю использовать парадигмы функционального программирования в php и задаюсь вопросом, что такое воздействие на производительность. Некоторые гуглинг просто говорят, что есть некоторые. Чтобы быть конкретным, я хотел бы знать:

  • Есть ли влияние на производительность или это городская легенда?
  • Каково влияние производительности (надеюсь, кто-то из тех, кто сделал тесты)?
  • Что вызывает это воздействие (если оно существует)?
  • Это фиксированная стоимость или за выполнение?

Любые ресурсы, которые вы, ребята, получили бы высокую оценку:)

Заранее спасибо

4b9b3361

Ответ 1

Я провел некоторое тестирование с помощью 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 Это приводит к тем же выводам. В этом комментарии вы также видите, что create_function() значительно медленнее.