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


Циклы: for, foreach, while, count/sizeof() - ускорение %-%


В начале программы создается массив $test из целых чисел (100 000 элементов). Потом один раз запускаются приведенные ниже примеры. Цикл проходит данный массив 3-мя способами (разными циклами) и выполняет кое-какие операции. Не выполнять в цикле ничего нельзя, ибо это будет уже совсем не реальный тест.

  1. {$x=0; foreach($test as $n)                          { $x=sprintf("test%08i",$i);        }}
  2. {$x=0; for ($it=0; $it<100000; $it++)                { $x=sprintf("test%08i",$i);        }}
  3. {$x=0; $it=0; while($it<100000)                      { $x=sprintf("test%08i",$i); $it++; }}
  4. {$x=0; for ($it=0; $it<count($test); $it++)          { $x=sprintf("test%08i",$i);        }}
  5. {$x=0; $it=0; while($it<count($test))                { $x=sprintf("test%08i",$i); $it++; }}
  6. {$x=0; $co=count($test); for ($it=0; $it<$co; $it++) { $x=sprintf("test%08i",$i);        }}
  7. {$x=0; $co=count($test); $it=0; while($it<$co)       { $x=sprintf("test%08i",$i); $it++; }}

счетчик кол-во
вызовов
общее
вpемя
сpеднее
вpемя
% от min% от maxобщее
время
test N1112.031312.0313154.4%100.0%


test N214.72904.729000.0%39.3%


test N314.77124.771200.9%39.7%


test N4110.284710.2847117.5%85.5%


test N5110.346610.3466118.8%86.0%


test N619.12719.127193.0%75.9%


test N719.14099.140993.3%76.0%





- Начало -  - Назад -  - Вперед -