Дополнительно
(Telegram отдела продаж)
Юмор | Программирование | Мысли / Личное
В этой записи рассмотрим мифы и легенды о print и echo в языке php
В интернете уже долгое время происходят споры между программистами по поводу использования для вывода конструкцию print или echo. Сразу напишу то, что я использую print как свой почерк в коде и люди которые говорят: «Rem-x говорит, что его скрипты работают быстрее из-за того, что он использует print», это полный бред, т.к. мой код не основан на микрооптимизации. Так же в этой записи, я не буду расписывать все тонкости и нюансы о данных конструкциях, а рассмотрим только быстродействие.
В общем, проводил я в своё время множество проб и экспериментов по данной теме, но никак времени не хватало (да и не где было) поделиться результатами. Разница в скорости выполнения настолько ничтожна, что её практически невозможно измерить. Колеблется она всего в несколько наносекунд и догадки о быстродействии можно излагать только из логических соображений. Во-первых: если писать код с учетом выполнения скрипта, то при каждом выполнении на сервере, оно выдает различные результаты, а во-вторых: случайно обнаружил такую особенность, если код размещен выше в исходнике, то он выполняется дольше, чем код ниже. Например:
Листинг 1. (Выполняется быстрее конструкция echo)
<?phpfunction microtime_float() {list($usec, $sec) = explode(" ", microtime());return ((float)$usec + (float)$sec);}$time_start = microtime_float();print "AdminStation";printf ("time: %.7f sec<br />",microtime_float()-$time_start);$time_start2 = microtime_float();echo "AdminStation";printf ("time: %.7f sec<br />",microtime_float()-$time_start2);?>
Листинг 2. (Выполняется быстрее конструкция print)
<?phpfunction microtime_float() {list($usec, $sec) = explode(" ", microtime());return ((float)$usec + (float)$sec);}$time_start = microtime_float();echo "AdminStation";printf ("time: %.7f sec<br />",microtime_float()-$time_start);$time_start2 = microtime_float();print "AdminStation";printf ("time: %.7f sec<br />",microtime_float()-$time_start2);?>
В офисе с сотрудниками поделился данными наблюдениями, но четких ответов на этот вопрос ни у кого не было. Самое интересное объяснение дал мой программист Саша. Он сказал: «Что это как человек, утром просыпается и начинает раскачиваться». Но это конечно юмор, но как это связано в программировании пока не понял, но и особо не вникал в эти подробности.
Если идти по пути логики, то print ведет себя как функция (но не является настоящей функцией), возвращая значение 1, конструкция echo не является функцией и ничего не возвращает, т.е. на выполнение echo, логически, уходит меньше времени.
Что использовать: «print или echo»? Однозначного ответа на этот вопрос дать нельзя. Мой совет: «Используйте то, что ближе к вам». Echo - 4 символа, print - 5 символов, т.е. echo набирается на 20% быстрее, чем print :) А если возможно, лучше вывод вообще делать за пределами тегов: <?php ?>.
А теперь юмор к теме: «В Вилларибо тестируют, что быстрее в php: print или echo, а в Виллобаджо давно пропивают только что выполненный проект».
К данной записи ещё нет комментариев
Для добавления комментария, вам необходимо зарегистрироваться!