За последние 24 часа нас посетили 53985 программистов и 1718 роботов. Сейчас ищут 1144 программиста ...

Работа с внутренним указателем массивов

Тема в разделе "Прочие вопросы по PHP", создана пользователем AlexGousev, 7 май 2007.

  1. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Опять я фигней занимаюсь… из чисто академического антиреса:

    PHP:
    1. <?php
    2. $arr = array();
    3. $time = microtime(true);
    4. for ($i = 0; $i<10000; $i++)
    5.     array_push($arr, $i);
    6. echo microtime(true)-$time;
    7.  
    8. echo '<br>';
    9. $arr = array();
    10. $time = microtime(true);
    11. for ($i = 0; $i<10000; $i++)
    12.     $arr[$i] = $i;
    13. echo microtime(true)-$time;
    14.  
    15. echo '<br>';
    16. $time = microtime(true);
    17. reset($arr);
    18. for ($i=1; $i<10000; $i++)
    19.     $a = next($arr);
    20. echo microtime(true)-$time;
    21.  
    22. echo '<br>';
    23. $time = microtime(true);
    24. for ($i=0; $i<10000; $i++)
    25.     $a = $arr[$i];
    26. echo microtime(true)-$time;?>
    Код (Text):
    1. 0.033044099807739
    2. 0.016412019729614
    3. 0.024176836013794
    4. 0.010087013244629
    Вывод: непосредственное обращение к элементу массива по его ключу быстрее примерно в два раза, чем работа с внутренним указателем.
     
  2. Davil

    Davil Guest

    Эти функции скорее пародия на коллекции объектов, чем действительно необходимые средства. Всеже с простыми массивами наверное нету смысла их использовать...
     
  3. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Davil
    И я о том же… :)
     
  4. oligarx

    oligarx Активный пользователь

    С нами с:
    23 янв 2007
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Украина Львов
    Не в тему, но на каком компе это тестировалось? просто у меня тот, же код выполнился за:
    Код (Text):
    1. 0.0080318450927734
    2. 0.0045850276947021
    3. 0.0056171417236328
    4. 0.003896951675415
     
  5. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Compaq Evo N600c (Pentium3 Mobile 1,2GHz) в режиме пониженной частоты (800MHz).