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

Система обладает уникальными возможностями оптимизации производительности.

Платформа сравнима с самыми быстрыми хардкодными MVC фреймворками и превосходит большинство систем CMS / CMF / Framework, оставаясь гибкой и удобной как для пользователей, так и для разработчиков.

Как нам удалось добиться таких  показателей производительности:

1. разделение ответственности за чтение и запись данных между моделями и объектами ORM  позволило увеличить производительность работы с базой данных приложения,  свести к минимуму типичные проблемы производительности ORM;

2. сборщик пакетов кода обеспечивает уменьшение количества инструкций  require, вместо 100-130 require  осуществляется подключение 3-5 пакетов и нескольких классов, что значительно увеличивает производительность, в связке с кэшером байткода конструкция работает еще быстрее;

3. мы тщательно анализируем исполнение кода, трассируем и профилируем этапы выполнения, что позволяет нам находить и оптимизировать узкие места;

4. мощная система кэширования (в качестве бекенда использован  Memcached):

  • кэширование файлов конфигурации;
  • кэширование структур объектов ORM;
  • кэширование  вывода шаблонов на основе переданных данных;
  • многоуровневое кэширование результатов работы Blockmanager:
    • отработка страницы;
    • конфигурация блоков;
    • результат обработки данных;
    • результат рендеринга шаблона;

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

6.  мы используем собственный класс Tree, оптимизированный для быстрейшей  обработки древовидных структур с большой вложенностью;

7. наш код не содержит избыточности и излишней абстракции;

8. виртуальные модели позволяют уменьшить количество кода для реализации логики работы с данными, реализуют стандартные операции.

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

Результаты тестов функциональности  «Hello Wold»  (тест можно найти в демо-версии платформы  RC2  и выше):

Наша система отрабатывает быстрее и на  более сложных тестах:


Ниже представлены результаты тестов платформы относительно других систем:

Пример теста  «Блог»,  демо-реализации которого представили разработчики быстрейших фреймворков, такие титаны как  YII  и менее известные микро фреймворки FatFree и DooPHP.

Первый тест и первый удар по слабым местам современных framework -  количество подключаемых файлов, и сложность набора выполняемых инструкций для запуска приложения. При этом хотелось бы отметить, что сам тест «Блог» на DVelum значительно сложнее, чем на других платформах. Вместо списка статей показываются по три из каждой категории, что значительно увеличивает нагрузку на код.

В этом тесте не использовалось кэширование, что особо сильно отразилось на  YII,  потому как фреймворк оптимизирован для хранения кэша  в  APC, которого не было на стенде, мы использовали  eaccelerator.

Очередной тест и удар по слабым местам современных CMS (Live Street и  Wordpress), теперь используем кэширование и в  memcached.  Архитектура  DVelum  показывает свои преимущества во всей красе, на этот раз отрыв за cчет класса  Tree  и более продуктивной системы кэширования.