<rmcreative>

RSS

The PHP Benchmark

5 июня 2008

Отличный тест, показывающий, что написанный «немного» по-разному код в PHP иногда сильно отличается в плане производительности.

Рассматриваем

Комментарии RSS

  1. №336
    Polosatyi
    Polosatyi 06 июня 2008 г., 10:14:10

    На счет двойных и одинарных кавычек считал совсем наоборот. Надоело верить всему подряд. Сел проверять. The PHP Benchmark не врет ;)

  2. №338
    Sam
    Sam 06 июня 2008 г., 11:52:49

    Я тоже там многому удивился… особенно echo 'str1','str2' vs echo 'str1'.'str2'

  3. №636
    romy4
    romy4 26 сент. 2008 г., 8:05:07

    проверил ещё у себя (Ath 1.6,UbServ,php524)

    echo $str1.$str2   // 115%
    echo $str1,$str2   // 100%
    echo 'aaaa'.'aaaa'   // 130%
    echo 'aaaa','aaaa'   // 100%

    всегда так было, непонятно, почему в тестах по-другому.

    при чём, я бы не ставил тесты с переменными и строками как тесты одного случая.

  4. №637
    romy4
    romy4 26 сент. 2008 г., 8:18:59

    Дальше, тесты с циклами.

    Где автор тестов хоть раз видел, чтобы цикл был пустым

    foreach($aHash as $val);

    такого не бывает. как минимум, вызов функции.

    foreach($aHash as $val)do_someth($val);

    Уже картина существенно меняется, хотя

    while(list($key,$val) = each($aHash))

    всё равно дольше, но уже не на 700%, а на 200%

    Но самый интересный результат вышел следующий:

    вместо:

    foreach($aHash as $key=>$val) $tmp[] = $aHash[$key];

    использовать:

    foreach($aHash as $tmp[]);

    результат: ровно в 2 раза быстрее :)

  5. №638
    romy4
    romy4 26 сент. 2008 г., 8:23:42

    при чём это оказалось всего на 5% медленнее, чем

    $tmp = array_values($aHash);

    Ж)

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.