Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: время выполнения циклов
 
 автор: Jackson   (25.09.2012 в 23:55)   письмо автору
 
 

заметил некую особенность - один цикл на m итераций выполняет одно действие медленнее, чем два вложенных цикла по n итераций, при этом n*n=m, то же самое действие
просто интересно - с чего бы?

  Ответить  
 
 автор: Sfinks   (26.09.2012 в 01:02)   письмо автору
 
   для: Jackson   (25.09.2012 в 23:55)
 

С чего вы взяли? Простой тест:
<?php
  $m1 
microtime(true);
  for(
$i=0;$i<1000;$i++)for($j=0;$j<1000;$j++)preg_match_all($p,$s);
  
$m2 microtime(true);
  for(
$i=0;$i<1000000;$i++)preg_match_all($p,$s);
  
$m3 microtime(true);
  
  echo 
round($m2-$m1,3)." VS ".round($m3-$m2,3);
3.361 VS 3.352

Если тут что-то чего-то и быстрее, то на 1млн. итераций - это статистическая погрешность!

  Ответить  
 
 автор: confirm   (26.09.2012 в 08:59)   письмо автору
 
   для: Sfinks   (26.09.2012 в 01:02)
 

Вот как раз разбор рег. выражениями, будет происходить быстрее, если выполнять раздельно каждый мелкий паттерн, чем загрузить задачу сразу всеми.

  Ответить  
 
 автор: Jackson   (28.09.2012 в 18:51)   письмо автору
 
   для: Sfinks   (26.09.2012 в 01:02)
 

у меня та же самая проверка дала разницу в порядок. Правда проверял на 16 итераций и 4х4

  Ответить  
 
 автор: confirm   (28.09.2012 в 19:05)   письмо автору
 
   для: Jackson   (28.09.2012 в 18:51)
 

Если объем данных велик, при этом не только их перебор в цикле, но и действия над ними подразумевают большой объем данных, а память под них может выделяться страницами, то уже это предполагает более сложную адресацию в первом вашем случае, нежели во втором.
Да и цикл циклу рознь.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования