ФорумПрограммированиеPHP для идиотовРасширения PHP → Производительность Smarty

Производительность Smarty

  • Mindfinder

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

    Spritz 30 июля 2010 г. 14:35

    При работе со Smarty возникла следующая проблема: есть сложный составной шаблон, посмотрел через xdebug профиль php-скрипта, и выяснилось, что при сборке составного шаблона (в функции fetch) Smarty каждый раз перечитывает куски шаблона с диска, что при усложнении шаблона сильно тормозит выполнение скрипта. Можно как-нибудь в Смарти один раз зачитать все что нужно с диска и хранить все в памяти, не перечитывая каждый fetch ?
  • phpdude

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

    Spritz 30 июля 2010 г. 14:54, спустя 19 минут 8 секунд

    используй опкод кешеры аля zend optimizer, xcache, eaccelerator, apc (вроде тоже, ноя точно не уверен)
    Сапожник без сапог
  • Mindfinder

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

    Spritz 30 июля 2010 г. 15:01, спустя 6 минут 58 секунд

    Использую eaccelerator, но это увы не решение проблемы. Кешеры кода позволяют экономить на преобразовании кода php в байткод, затратные файловые обращения все равно работают из-за того что Smarty каждый раз подчитывает куски шаблонов.
  • phpdude

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

    Spritz 30 июля 2010 г. 15:02, спустя 33 секунды


    Использую eaccelerator, но это увы не решение проблемы. Кешеры кода позволяют экономить на преобразовании кода php в байткод, затратные файловые обращения все равно работают из-за того что Smarty каждый раз подчитывает куски шаблонов.
    он же их всего лишь includ'ид, кешер тут должен помочь :)
    Сапожник без сапог
  • Mindfinder

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

    Spritz 30 июля 2010 г. 15:15, спустя 13 минут 11 секунд

    Не помогает :( Помогает в смысле общего ускорения работы, но не помогает в том смысле, что при усложнении шаблона время выполнения скрипта линейно увеличивается.
  • adw0rd

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

    Spritz 30 июля 2010 г. 15:21, спустя 6 минут 2 секунды

    Может использовать не фс в качестве хранения кеша? Или использовать другую фс, монтируя
    adw/0
  • Mindfinder

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

    Spritz 30 июля 2010 г. 15:28, спустя 6 минут 46 секунд

    Может использовать не фс в качестве хранения кеша? Или использовать другую фс, монтируя


    Думал об этом, в принципе должно сработать. Была идея замаунтить папку как tmpfs, попробую поиграться с VDS'кой.
    Просто есть классическое решение - зачитывать в память все необходимое один раз и потом оттуда фетчить по мере необходимости, но Smarty упорно дергает шаблоны с диска :(
  • adw0rd

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

    Spritz 30 июля 2010 г. 15:29, спустя 1 минуту 14 секунд

    Может тогда отучить смарти это делать?
    adw/0
  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 30 июля 2010 г. 16:56, спустя 1 час 26 минут 31 секунду

    Может тогда отучить смарти это делать?

    + 1 гениально решение, которое надо было сразу озвучить
  • adw0rd

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

    Spritz 30 июля 2010 г. 17:02, спустя 6 минут 23 секунды


    Может тогда отучить смарти это делать?

    + 1 гениально решение, которое надо было сразу озвучить
    это наверное самое геморное решение, потомучто надо потом поддерживать это все дело…
    либо делать плагин, хотя я не знаю какого рода полномочия имеют плагины в смарти
    adw/0
  • Mindfinder

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

    Spritz 30 июля 2010 г. 17:05, спустя 3 минуты 31 секунду

    либо делать плагин, хотя я не знаю какого рода полномочия имеют плагины в смарти


    Плагин только расширяет функциональность смарти, не поможет :( Можно поковырять конечно сам смарти, но проще все на tmpfs скидывать :)
  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 30 июля 2010 г. 17:09, спустя 3 минуты 35 секунд

    adw0rd, ну тогда есть еще решение - нафиг смарти
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 30 июля 2010 г. 17:22, спустя 13 минут 18 секунд

    Twig наше все
    Спустя 18 сек.
    а да, к нему приложился Фабьен
  • Padaboo

    Сообщения: 477 Репутация: N Группа: Адекваты

    Spritz 30 июля 2010 г. 17:27, спустя 5 минут 3 секунды

    да же мне уже интересно, кто же такой этот Фабьен xD
  • adw0rd

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

    Spritz 30 июля 2010 г. 17:44, спустя 16 минут 51 секунду


    либо делать плагин, хотя я не знаю какого рода полномочия имеют плагины в смарти


    Плагин только расширяет функциональность смарти, не поможет :( Можно поковырять конечно сам смарти, но проще все на tmpfs скидывать :)
    я бы тоже сначала попробовал tmpfs, либо еще что, а потом смарти ковырял )
    adw/0

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