Анализ характеристик различных веб-фреймворков

Автор: Демчишин Юрий Владимирович

Журнал: Горные науки и технологии @gornye-nauki-tekhnologii

Статья в выпуске: 4, 2013 года.

Бесплатный доступ

Данная статья предоставляет обзор существующих технологий разработки веб-сайтов. Приведен количественный анализ производительности некоторых популярных фреймворков. Статья будет полезна при выборе технологии разработки веб-приложений на языке php.

Система управления контентом, фреймворк, производительность

Короткий адрес: https://sciup.org/140215734

IDR: 140215734

Текст научной статьи Анализ характеристик различных веб-фреймворков

В настоящее время существует большое количество технологий разработки веб-сайтов. Можно для разработки веб-сайта использовать готовую CMS (систему управления контентом), фреймворк или написать сайт с нуля. Каждый из этих трех подходов к разработке используется в своих случаях.

CMS предоставляет определенный набор функциональных возможностей и позволяет управлять текстовым и графическим наполнением веб-сайта, предоставляя пользователю интерфейс для работы с содержимым сайта, удобные инструменты хранения и публикации информации, автоматизируя процессы размещения информации в базах данных и её выдачи в HTML [1]. Большинство существующих CMS легко настраиваются и не требуют участия программиста. Для создания вебсайта с использованием CMS, напр., Joomla, Wordpress, Drupal, Typo3, обычно достаточно только знаний HTML и CSS. Однако при необходимости создания функционала, не входящего в стандартный перечень возможностей CMS, требуется участие профессионального программиста.

Создание сайта с использованием фреймворка возможно только с участием веб-программиста. Фреймворк - каркас будущего сайта, состоящий из набора библиотек и минимальных правил их взаимодействия. С одной стороны, фреймворки представляют максимальную гибкость при создании веб-сайта, с другой - недостатком фреймворков является недостаточное количество готовой функциональности, которая частично решается также за счет дополнительных библиотек и модулей сторонних разработчиков. При выборе фреймворка стоит обращать внимание на такие факторы, как размер фреймворка. Если фреймворк слишком велик и не имеет легко разделяемой модульной архитектуры, это может неоправданно утяжелить приложение. Отсутствие легко разделяемой модульной архитектуры может также отрицательно сказаться на скорости разработки веб-приложения и его дальнейшей модификации. «Компактность» фреймворка может вступить в противоречие с широтой возможностей, которые он предоставляет [2, 3, 4]. Одной из важных характеристик фреймворка является его производительность. Она может косвенно зависеть от размера. В работах [5, 6] приведены полученные в результате эксперимента значения сравнительных характеристик фреймворков Yii, Kohana, CodeIgniter, CakePHP [7], Symphony (табл. 1).

Результаты тестирования фреймворков.

Таблица 1.

Параметр

Yii 1.1.12

Kohana

3.2.2

CodeIgniter

2.1.2

CakePHP

2.2.2

Symfony 2.1.1

Zend Framework 2.0

Легкость создания

5

5

4

3

3

4

Объектная модель

5-

5-

3-

5-

5-

5

Память

4718592

2359296

3407882

5545632

6029312

6153215

Скорость

5

5

5-

4

4-

4-

Роутинг

5

5-

5-

3

5

4

Удобство

5

4

4

3

4

4

Для оценки производительности использовалась элементарная конструкция . Проект включает в себя 1 контроллер, 1 модель, 1 представление, 1 роут. Модель загружается из базы средствами ORM. Поскольку во всех фреймворках скорость выполнения тестового проекта высока, для оценки использовались результаты apache benchmark (ab -n 1000 -c 5 http://test.dev/ ) на loopback-интерфейсе (127.0.0.1). Настройки всех фреймворков “по умолчанию”. Кэширование во всех проектах было отключено.

Опытным путем выяснилось, что метрики, полученные в процессе тестирования коррелируют между собой для каждого фреймворка. Поэтому, для простого сравнения производительности нет смысла собирать и анализировать все метрики, а достаточно одной. В нашем случае это — «requests per second» (rps) — количество обработанных запросов в секунду.

Результаты оценки количества обработанных запросов в секунду приведены в табл. 2 и показаны на рис. 1.

Результаты оценки количества обработанных запросов в секунду для различных фреймворков.

Фреймворк

rps

Zend Framework 2.0

1

CakePHP 2.2.2

2

Symfony 2.1.1

53

Zend Framework 1.12

466

Kohana 3.2.2

885

Yii 1.1.12

894

CodeIgniter 2.1.2

1226

Рис. 1. Диаграмма производительности фреймворков.

Из приведенных данных видно, что самым производительным фреймворком оказался CodeIgniter. Однако он проигрывает другим фреймворкам по другим критериям, приведенным в табл. 1.

Список литературы Анализ характеристик различных веб-фреймворков

  • Методы и технологии реинжиниринга ИС. К.В. Ахтырченко, Т.П. Сорокваша. -Институт системного программирования РАН.
  • Martin Brampton PHP5 CMS Framework Development. -PACKT publishing, June 2008. -328 p. -ISBN 978-1-847193-57-5
  • Денис Баженов Теория разработки framework-систем//PHP Inside. -phpclub.ru, 2004. -№ 9. -С. 5-18.
  • Денис Баженов Каркасы, каркасы, каркасы…//PHP Inside. -phpclub.ru, 2005. -№ 11. -С. 5-11.
  • Тестирование производительности PHP-фреймворков. -Интернет-источник: http://habrahabr.ru/sandbox/48275/
  • PHP фреймворки: сравнение Yii, Kohana (KO3), CodeIgniter (CI), OnPHP, Symfony2. -Интернет-источник: http://baron.su/archives/272-PHP_frejmvorki_sravnenie_Yii,_Kohana_KO3,_CodeIgniter_CI,_OnPHP,_Symfony2.html
  • Cake Software Foundation, Inc. Basic Features. CakePHP: the rapid development php framework. [Online] [Citat: den 28 05 2010.] -Интернет-источник: http://cakephp.org/pages/features
Статья научная