Разница в скорости при использовании встроенных строк и конкатенации в php5?

Ну, как и во всех вопросах speed "Что может быть быстрее в php-include реальной жизни", вы не можете optimizing пройти тест в реальной жизни.

function timeFunc($function, $runs)
{
  $times = array();

  for ($i = 0; $i < $runs; $i++)
  {
    $time = microtime();
    call_user_func($function);
    $times[$i] = microtime() - $time;
  }

  return array_sum($times) / $runs;
}

function Method1()
{ 
  $foo = 'some words';
  for ($i = 0; $i < 10000; $i++)
    $t = "these are $foo";
}

function Method2()
{
  $foo = 'some words';
  for ($i = 0; $i < 10000; $i++)
    $t = "these are {$foo}";
}

function Method3()
 {
  $foo = 'some words';
  for ($i = 0; $i < 10000; $i++)
    $t = "these are " . $foo;
}

print timeFunc('Method1', 10) . "\n";
print timeFunc('Method2', 10) . "\n";
print timeFunc('Method3', 10) . "\n";

Дайте fast ему несколько прогонов, чтобы fast просмотреть все, а затем...

0,0035568

0,0035388

0,0025394

Итак, как fast и ожидалось, интерполяция optimizer практически идентична (различия speed в уровне шума, вероятно, из-за php-include дополнительных символов, которые php.ini должен обрабатывать механизм optimize интерполяции). Прямая конкатенация optimizing составляет около 66% скорости, что optimisation не является большим шоком. Синтаксический optimizing анализатор интерполяции посмотрит, не php-frameworks найдет, что делать, а затем fast закончит простым внутренним php.ini преобразованием строк. Даже php если concat будет дорогим, интерполятор php-include все равно должен будет это php-fpm сделать, после всей работы по php-frameworks разбору переменной и обрезке/копированию php-include исходной строки.

Обновления от Somnath:

Я добавил fast Method4() к вышеприведенной optimizations логике реального времени.

function Method4()
 {
  $foo = 'some words';
  for ($i = 0; $i < 10000; $i++)
    $t = 'these are ' . $foo;
}

print timeFunc('Method4', 10) . "\n";

Results were:

0.0014739
0.0015574
0.0011955
0.001169

Когда performance вы просто объявляете только php-include строку и не нужно анализировать php5 эту строку, то зачем путать php.ini отладчик PHP с анализом. Надеюсь, вы php-frameworks поняли мою точку зрения.

php

optimization

performance

2022-10-27T08:54:48+00:00
Вопросы с похожей тематикой, как у вопроса:

Разница в скорости при использовании встроенных строк и конкатенации в php5?