Сколько запросов делают вежливые CMS?
Даже в такой нетипизированной вещи, как разработка CMS, сущестуют свои негласные стандарты. Например, считается дурным тоном использование скриптом памяти, которую не может обеспечить средне-статистический хостер (20-30мб).
Вежливая ли система Е5?
Скорее нет, чем да. Всё зависит от задачи, которую вы будете на ней решать. Если речь идёт об одном сайте, то тут не должно возникнуть проблем, хотя если он будет использовать много связанных сущностей (статьи - комментарии - категории статей), то и Е5 может выдать под 300 запросов к БД. При этом скорость работы практически не зависит от количества запросов.
А как быстро Е5 загружает сайты?
И здесь нам нечем похвастаться. Средняя доморощенная CMS может выдать содержимое сайта за 0.02 секунды. Для Е5 0.4 секунды это очень хороший результат. Сложные сайты грузятся по 1 секунде, а порталы могут загружаться по 6-8 секунд (например выборка квартир по району у модуля "справочник недвижимости"). Кеширование решит проблему, но это чрезвычайно непристойный результат. Причина такой низкой скорости в интерпретируемости работы шаблонизатора. Для того же вывода района используется цикл, прогоняющий все 100 вариантов квартир. В каждом проходе цикла используется по 50 операндов. На выходе мы получим 5000 вызовов функции определения операнда. Естественно, при такой нагрузке никакая оптимизация не спасёт.
Кроме этого, раньше Е5 делала отдельные запросы в БД для определения значений каждой строчки цикла, но теперь мы ввели оптимизацию циклов. При первом прогоне индексируются все используемые значения, а дальше они определяются для всех остальных значений цикла.
Если бы в Е5 шаблонизатор приобразовывал шаблон к пхп скрипту, то естественно подобных проблем удалось бы избежать. Но в Е5 при каждом вызове шаблона он интерпритируется заново. Конечно, существуют различные кеширования этих процессов (автор системы даже уверен что это работает быстрее, чем преобразование к нативному пхп), но факт есть факт - сумма в 30 000 вызовов функций за одну генерацию страницы это не просто много, это чрезмерно много. При этом удивительно, как генерация успевает проходить за 6 секунд.
Автор: E5 Developer
Дата: 05 июня 2012