Статьи,обзоры,справочники по PHP

       

Выносите $переменные из "текстовых строк" - ускорение -%


Одна и таже операция присваивания (либо echo/print для вывода на экран) в зависимости от того, заключены ли переменные в кавычеки или нет, сильно влияет на скорость. В первом и втором вариантах добавлены пробелы, чтобы выравнять размер общего кода для парсинга.

  1. {$x="test".$test;}
  2. {$x="test $test";    }
  3. {$x="test";$x.=$test;}
  4. Переменная $test содержит строку "1234567890".

    счетчик кол-во
    вызовов
    общее
    вpемя
    сpеднее
    вpемя
    % от min% от maxобщее
    время
    test N113.59113.591100.0%70.9%
    test N215.06165.061640.9%100.0%
    test N314.98704.987038.9%98.5%

    Итак, никогда не пишите $a="$b", ибо это затормозит программу (в этой строке) на 40%.

    Однако, если у вас большая строка, где много текста и переменных, различия в скорости уменьшаются, т.к. общие затраты на парсинг становятся намного больше, чем разные по эффективности команды. Но почему бы и не увеличить скорость программы (строк присваивания) почти на четверть таким простым методом?

    1. {$x="test ".$test." test ".$test." test ".$test;                }
    2. {$x="test $test test $test test $test";                         }
    3. {$x="test ";$x.=$test;$x="test ";$x.=$test;$x="test ";$x.=$test;}
    счетчик кол-во
    вызовов
    общее
    вpемя
    сpеднее
    вpемя
    % от min% от maxобщее
    время
    test N117.68947.689400.0%66.0%
    test N219.55159.551524.2%82.0%
    test N3111.650611.650651.5%100.0%

    Содержание раздела