Как можно измерить скорость работы, в т.ч., стандартных функций? Допустим, есть некоторый массив из 10 элементов и две функции, for и foreach, очевидно, по мере обработки запроса процессор будет действовать несколько иначе, затратит на эти операции разное количество тактов. Или какие-нибудь print и echo.
Как точно определить какая из этих функций быстрей?
Но ведь на такой подход сильно будут влиять внешние факторы, например, если в операционной системе помимо интерпретатора php работает что-то ещё. Аналогично наверное и с профилировщиками, плюс, профилировщики вряд ли отличаются чем-то кроме уровня абстракции от описанной выше конструкции на php.
kafkiansky, чайник не выполняется на том же ядре процессора, а профилировщики мне знакомы, но без понимания внутренностей, однако точно знаю, что при запуске одного и того же большого скрипта прфилировщики на выходе отдают файлы разных размеров.
ixon, на самом деле чайник тоже может влиять на производительность... например, если он закипит - в комнате повысится влажность и теплоотведение с процессора, что немного ускорит его :)))
А если серьёзно, то для получения результата максимально близкого к истине - просто возьмите чистую систему, установленную на железку единолично, я думаю оптимально для этого подойдёт Linux или FreeBSD. Запускайте там каждый тест (как в примере выше) не 1 раз, а например, 10 раз подряд или 100 (или любое другое кол-во раз, на Ваш выбор), получите среднюю, на которую уже можно будет примерно ориентироваться. Но и это вряд ли можно будет считать, по тому как при различных изменениях входных данных - гипотетически может меняться и результат. А ещё на результат могут влиять различные внутренние процессы PHP (по крайней мере в теории), например процесс сборки мусора и т.п. А ещё на разных системах PHP может быть собран из исходного кода по разному, разными компиляторами, с разными параметрами и т.д., что в теории так же может влиять на результаты... Оно Вам точно надо?
НИКАК не измерять
Все функции РНР работают одинаково быстро.
Заниматься подобными измерениями на пустом месте - очень тяжелое заболевание.
Просто забудьте про подобные измерения и займитесь чем-нибудь полезным.
Это не ответ на мой вопрос.
Подходя так к написанию кода мы рискуем повторить плохие решения вроде браузеров занимающих гигабайты в оперативной памяти на отрисовки нескольких картинок и пару блоков с текстом. Это не должно повторяться, за производительностью нужно следить.