Для большей наглядности, немного теории. Рассмотрим на наглядном примере структуру обработки информации процессором, в общем, так сказать в грубой форме без углубления в детали. В том числе, html, браузер, операционную систему и другие составляющие в учёт не берём.
И так, с низу в верх или с верха в низ, тут кому как угодно
Путь прохождения данных
• CMS SLAED (система построения сайтов)
• PHP (язык программирования)
• Си (язык программирования)
• Язык ассемблера
• Машинный код
• Процессор сервера
Думаю понятно, что на все эти "промежуточные станции" уйдёт некоторое время (обработка информации), пока код в понятном для процессора языке дойдёт до него, обработается и вернётся к нам.
Ну а теперь сравнение актуальных фреймворков работающих на PHP 7.
Судя по графику, самый шустрый из них это Phalcon, который значительно превосходит всех своих конкурентов. Но стоит заметить, что он не является сто процентным PHP фреймворком, так как написан на языке C (Си) и работает в связки с ним. Для его использования от вас потребуется установка на сервер дополнительных плагинов, dll файлов для виндовс. Поэтому стандартный, среднестатистический хостинг отпадает.
При этом, хочу обратить ваше внимание!
Phalcon в два раза медленнее PHP.
Это к тому, почему для быстрых проектов не стоит использовать фреймворки, так как изначально, PHP сам является таковым.
Теперь ответ на вопрос заданный ранее. Кто быстрее:
strtr() или
str_replace()?
Быстрее всех, как это не удивительно:
str_replace()
Наглядный пример теста относительного сравнения. Поиск и замена текста отрабатывается в цикле, количество повторов: 1000
str_replace(array({tag1}, {tag2}), array($i, $i.$i), $str)
Время: 0.0070009231567383 сек., Память: 0.37043762207031 Мб.
str_replace(array_keys($value), array_values($value), $str)
Время: 0.0069999694824219 сек., Память: 0.37071990966797 Мб.
strtr($str, array({tag1} => $i, {tag2} => $i $i))
Время: 0.0090010166168213 сек., Память: 0.37267303466797 Мб.
Для тех кто хотел бы повторить тест сравнения скорости работы функций на своём сервере, выкладываю:
Zip архив с файлом
P.S.: Код интуитивно понятен, думаю что объяснять детали не стоит. Если всё таки появятся вопросы, пишите, охотно отвечу.