Гру 272011
Выносите $переменные из “текстовых строк” – ускорение 25-40%
Одна и таже операция присваивания (либо echo/print для вывода на экран) в зависимости от того, заключены ли переменные в кавычеки или нет, сильно влияет на скорость. В первом и втором вариантах добавлены пробелы, чтобы выравнять размер общего кода для парсинга.
- {$x="test".$test; }
- {$x="test $test"; }
- {$x="test";$x.=$test;}
Переменная $test содержит строку “1234567890”.
счетчик | кол-во вызовов |
общее вpемя |
сpеднее вpемя |
% от min | % от max | |
test N1 | 1 | 3.5911 | 3.5911 | 00.0% | 70.9% | |
test N2 | 1 | 5.0616 | 5.0616 | 40.9% | 100.0% | |
test N3 | 1 | 4.9870 | 4.9870 | 38.9% | 98.5% |
Итак, никогда не пишите $a="$b", ибо это затормозит программу (в этой строке) на 40%.
Однако, если у вас большая строка, где много текста и переменных, различия в скорости уменьшаются, т.к. общие затраты на парсинг становятся намного больше, чем разные по эффективности команды. Но почему бы и не увеличить скорость программы (строк присваивания) почти на четверть таким простым методом?
- {$x="test ".$test." test ".$test." test ".$test;}
- {$x="test $test test $test test $test";}
- {$x="test ";$x.=$test;$x="test ";$x.=$test;$x="test ";$x.=$test;}
счетчик | кол-во вызовов |
общее вpемя |
сpеднее вpемя |
% от min | % от max | |
test N1 | 1 | 7.6894 | 7.6894 | 00.0% | 66.0% | |
test N2 | 1 | 9.5515 | 9.5515 | 24.2% | 82.0% | |
test N3 | 1 | 11.6506 | 11.6506 | 51.5% | 100.0% |