Главная
страница 1
УДК 004.9

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

доц., к.т.н.

Московский государственный горный университет

анализ характеристик различных веб-ФРЕЙМвОРКов
Analysis of the features of various web-frameworks
В настоящее время существует большое количество технологий разработки веб-сайтов.  Можно для разработки веб-сайта использовать готовую 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.


Таблица 2.


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


Фреймворк

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.

Литература.

  1. Методы и технологии реинжиниринга ИС. К.В. Ахтырченко, Т.П. Сорокваша. – Институт системного программирования РАН.

  2. Martin Brampton PHP5 CMS Framework Development. - PACKT publishing, June 2008. - 328 p. - ISBN 978-1-847193-57-5

  3. Денис Баженов Теория разработки framework-систем // PHP Inside. — phpclub.ru, 2004. — № 9. — С. 5-18.

  4. Денис Баженов Каркасы, каркасы, каркасы… // PHP Inside. — phpclub.ru, 2005. — № 11. — С. 5-11.

  5. Тестирование производительности PHP-фреймворков. – Интернет-источник: http://habrahabr.ru/sandbox/48275/

  6. PHP фреймворки: сравнение Yii, Kohana (KO3), CodeIgniter (CI), OnPHP, Symfony2. – Интернет-источник: http://baron.su/archives/272-PHP_frejmvorki_sravnenie_Yii,_Kohana_KO3,_CodeIgniter_CI,_OnPHP,_Symfony2.html

  7. Cake Software Foundation, Inc. Basic Features. CakePHP: the rapid development php framework . [Online] [Citat: den 28 05 2010.] – Интернет-источник: http://cakephp.org/pages/features



Аннотация.

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

Статья будет полезна при выборе технологии разработки веб-приложений на языке php.
This article presents an overview of the existing technologies of the websites development. The quantitative analysis of some popular frameworks’ performance is provided. The article will be useful in choosing the web applications development technology in php
Ключевые слова.

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



Content Management System, CMS, framework, PHP, performance



Смотрите также:
Демчишин Юрий Владимирович
57.46kb.
1 стр.
Бенчаров юрий владимирович
84.02kb.
1 стр.
Полковник рыбкин юрий Владимирович
18.42kb.
1 стр.
Юрий Владимирович Владимиров Война солдата-зенитчика: от студенческой скамьи до Харьковского котла. 1941–1942
3661.26kb.
22 стр.
Соловьёв Юрий Владимирович аспирант кафедры бжго
55.69kb.
1 стр.
Николай Михайлович Карамзин История государства Российского
26510.49kb.
122 стр.
I международная конференция «Современные платежные системы и расчеты: тенденции и перспективы»
61.17kb.
1 стр.
Юрий (георгий) владимирович долгорукий (1090 1157+)
99.49kb.
1 стр.
Смагин Юрий Владимирович Опыт работы
28.17kb.
1 стр.
Юрий Владимирович Владимиров в немецком плену. Записки выжившего. 1942-1945
4458.21kb.
26 стр.
Юрий Коваленко, к ф. м н., Юрий Кулинич, к ф. м н., Михаил Прихно
189.01kb.
1 стр.
Сведения о кандидатах в совет директоров ОАО «Группа Компаний пик» Жуков Юрий Владимирович
42.4kb.
1 стр.