Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Скорость замены в PHP

Провёл небольшие замеры в PHP. Задача следующая — заменить вхождения между двумя ограничителями (в моём случае — фигурные скобки) по хешу, где ключём хеша является значение, которое заменяем, значением хеша — то, на что заменяем. Сделал несколько реализаций, с использованием различный функций (слева функция, справа — время в секундах замены из одного и того же словаря на приличного размера тексте):

strpos — 0.23691987991333
explode — 0.27920699119568
preg_replace_callback — 0.34914493560791
str_replace — 1.8960340023041
strtr — 3.1935269832611

Во многом результаты довольно ожидаемые, но кое-что удивило — скорость замены через str_replace и strtr сильно различается, а explode (разбиение по первому ограничителю, потом, что осталось — по второму) почему-то оказался почти таким же быстрым, как и strpos (поиск первого ограничителя, потом второго).

Ctrl →[LJ2ME]