Nelexis Posted September 11, 2013 Share Posted September 11, 2013 Вот собственно вывод дебагера: Load time: 27.702s You'd better run your shop on a toaster config: 263ms constructor: 0ms init: 74ms checkAccess: 0ms setMedia: 9ms postProcess: 0ms initHeader: 5ms initContent: 7.614s initFooter: 1ms display: 19.738s И в тоже время тот кусок кода в смарти который так тормозит: {foreach $attributes as $id=>$attribute} <tr> <td> <h3>{$attribute.name}</h3> <ul> {foreach $attribute.values as $value} <li><input type="checkbox" name="a[{$id}]" value="{$value}">{$value}</li> {/foreach} </ul> </td> </tr> {/foreach} Родительский массив 3 элемента. Дочерних по несколько десятков. Но я все-таки не понимаю из-за чего столь долгое время идет на построение шаблона. Использую Smarty 3 на других проектах, вместе с фреймворками, естественно на этапе разработки кеширование представлений отключаю, но и таким образом оно на много производительнее. Кто разбирался, может подскажете суть? Ну если сам докопаюсь то отпишусь. Link to comment Share on other sites More sharing options...
Kerm Posted September 11, 2013 Share Posted September 11, 2013 (edited) Ты тролишь что ли со своими 27 секундами? а потом еще напишешь что ты это все на денвере проверял еще? У страница с 300+ категориями, с 15 тысячами товаров и фильтром blocklayered по 5ти параметрам грузится за 450мс....правда с 1 посетителем.. Edited September 11, 2013 by Kerm (see edit history) Link to comment Share on other sites More sharing options...
Nelexis Posted September 11, 2013 Author Share Posted September 11, 2013 (edited) Эм... Проверял я это на связке Nginx+Php-fpm+memcached вообще-то, на локалхосте под Debian GNU\Linux, с 3 ГБ ОЗУ из которых у PHP лимит в 512. Вся суть в том что мне нужно динамически формировать список фильтров по аттрибутам, а не выбирать в админке. И суть в другом, без цикла что я написал выше, но с выборкой всех нужных данных из базы панель отладки показывает такие результаты: Load time: 2.631s You'd better run your shop on a toaster config: 86ms constructor: 0ms init: 28ms checkAccess: 0ms setMedia: 2ms postProcess: 0ms initHeader: 1ms initContent: 1.976s initFooter: 0ms display: 537ms С циклом который я привел выше, то есть по сути просто построение ul списка, на той же категории производительность существенно отличается. То есть единственная разница между тем и тем результатом это проход смарти по массиву. Load time: 15.179s You'd better run your shop on a toaster config: 74ms constructor: 0ms init: 33ms checkAccess: 0ms setMedia: 3ms postProcess: 0ms initHeader: 1ms initContent: 2.044s initFooter: 1ms display: 13.022s Уважаемый, мне как бы не до тролинга. У меня тут таки реальная пробелмка. Вот смотрю куда копать. Думал может кто сталкивался уже или где я чего не так сделал(хотя что удивительного в таком цикле? O_o) К слову версия престы 1.5.5 Edited September 11, 2013 by Nelexis (see edit history) Link to comment Share on other sites More sharing options...
gluck Posted September 11, 2013 Share Posted September 11, 2013 Вы пытаетесь нагрузить смарти несвойственным ему занятием — php. Между тем, смарти это всего лишь обработчик того, что передает ему пхп. Именно в пхп и должен работать ваш foreach, а не где-нибудь еще. 1 Link to comment Share on other sites More sharing options...
Nelexis Posted September 11, 2013 Author Share Posted September 11, 2013 Вы пытаетесь нагрузить смарти несвойственным ему занятием — php. Между тем, смарти это всего лишь обработчик того, что передает ему пхп. Именно в пхп и должен работать ваш foreach, а не где-нибудь еще. Да, Вы правы, что-то закралось у меня такое неправильное ощущение что smarty работает с той же скоростью что и php. Хотя там был уже сформированный массив, смарти нужно было лишь все это в цикле вывести. Так же нашел ошибку в собственном SQL запросе, из-за чего получал массив намного больше чем должен был. Моя невнимательность. В итоге без кеширования с фильтрами все страницы грузятся не более чем за 2 секунды. Вопрос исчерпан. =) Link to comment Share on other sites More sharing options...
absent Posted September 12, 2013 Share Posted September 12, 2013 Да, Вы правы, что-то закралось у меня такое неправильное ощущение что smarty работает с той же скоростью что и php. Хотя там был уже сформированный массив, смарти нужно было лишь все это в цикле вывести. Так же нашел ошибку в собственном SQL запросе, из-за чего получал массив намного больше чем должен был. Моя невнимательность. В итоге без кеширования с фильтрами все страницы грузятся не более чем за 2 секунды. Вопрос исчерпан. =) 2 секунды это всёравно многовато... Link to comment Share on other sites More sharing options...
Nelexis Posted September 12, 2013 Author Share Posted September 12, 2013 Да, многовато. Это без кеширования и с постоянной перекомпиляцией шаблонов. С кешированием еще не проверял. Но в любом случае еще есть над чем работать. 1 Link to comment Share on other sites More sharing options...
Recommended Posts