В интернете ходит слух, что если использовать короткие переменные в PHP - можно ускорить работу скриптов. Короткие переменные выполняются на 15 и более процентов быстрее.
Проверим этот слух.
Первый пример.
$a = 'Hello, world! ';
echo $a;
Hello, world! 0.0019073486 Hello, world! 0.0009536743 Hello, world! 0 Hello, world! 0 Hello, world! 0.0009536743 Hello, world! 0 Hello, world! 0.0009536743 Hello, world! 0.0009536743 Hello, world! 0.0011920929 Hello, world! 0 0.00069141387
$qwertyqwertyqwertyqwertyqwerrty = 'Hello, world! ';
echo $qwertyqwertyqwertyqwertyqwerrty;
Hello, world! 0 Hello, world! 0 Hello, world! 0 Hello, world! 0 Hello, world! 0 Hello, world! 0 Hello, world! 0.0009536743 Hello, world! 0 Hello, world! 0 Hello, world! 0.0009536743 0.00019073486
Пример на отдельной странице
В примере использовался цикл. Вот его исходный код (файла).
<?php
echo '<code>$a = \'Hello, world! \';
echo $a;</code><pre>';
for($i = 0; $i < 10; $i++){
unset ($us, $a, $uf);
$us = microtime(true);
$a = 'Hello, world! ';
echo $a;
$uf = microtime(true);
$t1 = round(($uf-$us)*1000, 10);
echo $t1.PHP_EOL;
$t1_1 += $t1;
}
echo $t1_1/10;
echo PHP_EOL;
echo '</pre><code>$qwertyqwertyqwertyqwertyqwerrty = \'Hello, world! \';
echo $qwertyqwertyqwertyqwertyqwerrty;</code><pre>';
for($i = 0; $i < 10; $i++){
unset ($us, $qwertyqwertyqwertyqwertyqwerrty, $uf);
$us = microtime(true);
$qwertyqwertyqwertyqwertyqwerrty = 'Hello, world! ';
echo $qwertyqwertyqwertyqwertyqwerrty;
$uf = microtime(true);
$t2 = round(($uf-$us)*1000, 10);
echo $t2.PHP_EOL;
$t2_1 += $t2;
}
echo $t2_1/10;
echo PHP_EOL;
echo '</pre>';
?>
Второй пример.
В первом примере можно рассказать всякие байки про кеш и прочее... В общем для примера, было решено сделать без цикла (короткая переменная, длинная переменная)
Общее время:
Общее время:
Исходный код файлов.
Короткая переменная
<?php
$us = microtime(true);
$a = 'Hello, world! ';
echo $a;
$uf = microtime(true);
echo '<em class="t1">'.round(($uf-$us)*1000, 10).'</em>';
?>
Длинная переменная
<?php
$us = microtime(true);
$qwertyqwertyqwertyqwertyqwerrty = 'Hello, world! ';
echo $qwertyqwertyqwertyqwertyqwerrty;
$uf = microtime(true);
echo '<em class="t2">'.round(($uf-$us)*1000, 10).'</em>';
?>
Слух разрушен! :D