Я работаю над оптимизацией своего PHP-кода и выяснил, что вы можете ускорить эхо в этих направлениях – точно, вы можете заменить echo "The name of the user is $name" . ".";
echo "The name of the user is $name" . ".";
с:
echo 'The name of the user is '.$name.'.';
echo "The name of the user is", $name, ".";
echo sprintf("The name of the user is %s", $name);
Какой из них самый быстрый? Я бы хотел не только увидеть контрольные показатели, но и техническую разъяснительную работу, если это возможно.
Во-первых, это микро-оптимизация, и вы, вероятно, лучше платите за более быстрый сервер и разрабатываете больше продуктов, а затем тратите часы и часы на микро-оптимизацию. Однако, согласно http://micro-optimization.com/, вот результаты:
sprintf () медленнее, чем двойные кавычки на 138,68% (в 1,4 раза медленнее)
а также
sprintf () медленнее одиночных кавычек на 163,72% (в 1,6 раза медленнее)
Вышеуказанные комментарии актуальны. Есть лучшие способы оптимизации вашего кода.
Тем не менее, лучшие способы оптимизации строк – вывести их в список и затем объединить список. Взгляните на этот пост как на хорошую отправную точку.
Вариант с использованием sprintf()
вполне уверен, что самый медленный из всех, поскольку вызовы функций в PHP довольно дороги, а sprintf()
придется разбирать строку формата. Используя что-то вроде echo "abc ", $n, " xyz";
фактически компилируется на три одиночных ZEND_ECHO
, что означает, что выходной уровень вызывается несколько раз, что может быть довольно медленным, в зависимости от используемого SAPI. Не имеет большого значения, используете ли вы echo "abc $n xyz";
или echo "abc " . $n . " xyz";
echo "abc " . $n . " xyz";
поскольку они оба скомпилируются в операции кокатинации.