ФорумПрограммированиеPHP для идиотов → Быстродействие в PHP. Правда и мифы

Быстродействие в PHP. Правда и мифы

  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 1 апреля 2009 г. 1:04

    Во-первых, я в курсе 40 Tips for optimizing your php code на которую постоянно ссылаются. Например там написано что require_once "дорогая операция". Написано без каких-либо пояснений и примеров.
    Все это запомнили и избегают *once. В коде разных движков встречается что-то вроде

    if (!defined('XXX'))
    require('./lib/xxx.php');

    в теле xxx.php стоит

    define('XXX', 1);


    Нутром чую, что внутренний механизм *once работает примерно по такому же принципу. Так почему "вручную" будет быстрее?

    Не верю! Кто-нибудь пытался проверить и выразить в цифрах? Может быть народ просто тупо без осознания контекста избегает require_once|include_once ? Да, require_once по сравнению с простым require делает какую-то дополнительную проверку. Но будет ли эта проверка дороже, чем проверка if defined ??? !!! Может быть стоит так сформулировать правило:
    "старайтесь проектировать приложение так, чтобы require_once просто не понадобилась, потому что он немного чуть-чуть медленнее require, а if (!defined(…)) require(…) будет еще тормознее"

    Есть мысли? Есть опыт?
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 1 апреля 2009 г. 1:28, спустя 24 минуты 30 секунд

    хуй на это все я думаю стоит класть. байтоптимизация. скл запросы в движках нечто невобразимое с точки зрения оптимизации по сравнению с простым реквайр
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 1 апреля 2009 г. 3:02, спустя 1 час 34 минуты 17 секунд

    artoodetoo, я думаю что ты прав, или почти прав (например, эффект от дефайн действительно положительный, но ничтожно мал). Почему сам тесты не проведешь, если интересно?
    adw/0
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 1 апреля 2009 г. 3:23, спустя 20 минут 26 секунд


    скл запросы в движках нечто невобразимое с точки зрения оптимизации
    Совершенно верно!! SQL надо в первую очередь оптимизировать.
    - Смотреть планы запросов
    - Не забывать про индексы
    - Использовать JOIN вместо вложенных запросов (Mysql)
    - По возможности разнести на разные машины SQL сервер и WEB сервер
    - Кешировать результаты запросов в память
    - Кешировать результаты парсинга
    - Денормализовать таблицы (да, да, не надо этого боятся)
    - Использовать принцип разделения данных (шардинг)
    - Репликации на несколько SQL серверов (в принципе зло, но часто это дешевое решение)
    - Кластер (ХЗ не юзал)
    - Настроить директивы SQL-сервера

    Каждый пункт может дать прирост производительности от "в несколько раз" до "в несколько тысяч раз", когда замена конструкций пхп на альтернативные это выигрывание "сотых долей процента".
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 1 апреля 2009 г. 5:05, спустя 1 час 42 минуты 4 секунды

    - Денормализовать таблицы (да, да, не надо этого боятся)


    респект и уважуха. не я один так считаю оказывается :)
    Сапожник без сапог
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 1 апреля 2009 г. 5:05, спустя 9 секунд

    зы Сообщений: 3443
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 1 апреля 2009 г. 5:30, спустя 25 минут 13 секунд


    artoodetoo, я думаю что ты прав, или почти прав (например, эффект от дефайн действительно положительный, но ничтожно мал). Почему сам тесты не проведешь, если интересно?

    потомучто я очень ленив и очень занят :)

    присоединяюсь к дуду, алексбэ и всем-всем-всем про SQL-запросы в движках, это гораздо дороже и требует бОльшего тестирования.

    что-то все согласны, даже пофлеймить неочем. неудалась тема :) поищу более устойчивые мифы …
    ιιlllιlllι унц-унц
  • Franklin

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 4 апреля 2009 г. 10:49, спустя 3 дня 5 часов 18 минут

    и нафига вам этот миф проверять вообще? в чем толк то? написал, "Работает" да и черт с ним. миллисекунды выгадать, ну это просто Загон
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 4 апреля 2009 г. 10:53, спустя 4 минуты 14 секунд

    Franklin, я бы тебя в адском костре сжег,если бы это было в моих полномочиях
    Сапожник без сапог
  • ubica

    Сообщения: 530 Репутация: N Группа: Кто попало

    Spritz 4 апреля 2009 г. 10:54, спустя 1 минуту 6 секунд

    адский огонь в 70 раз жарче земного…
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 4 апреля 2009 г. 10:56, спустя 1 минуту 54 секунды

    ubica, это ты про ту зеленую хуйню котороую мы с тобой както раз + ящик пива выжрали?))))))))))))))
    Сапожник без сапог
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 4 апреля 2009 г. 10:56, спустя 14 секунд

    аа и потом проснулись на след день почти ночью))))))))))))))
    Сапожник без сапог
  • ubica

    Сообщения: 530 Репутация: N Группа: Кто попало

    Spritz 4 апреля 2009 г. 11:36, спустя 39 минут 48 секунд

    :-!

Пожалуйста, авторизуйтесь, чтобы написать комментарий!