Сравнение производительности PHP Фреймворков кратко

Лекция



Привет, сегодня поговорим про сравнение производительности php фреймворков , обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое сравнение производительности php фреймворков , настоятельно рекомендую прочитать все из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend) .

Case

Проверьте вывод простой страницы "Hello World", Простая логика MVC (Router -> Controller -> Viewer), Нет соединений с базой данных, Нет сложной логики.

Hardware platform
CPU: Intel Core i5 750 (2.67GHz x4)
RAM: 4GB

Software Environment

Debian 6.0.4 x86_64 (2.6.32-41)

apache 2.2.16 (mpm-prefork,mod-php5)

php 5.3.10
php-apc 3.1.9 (Optimization for include/require)

Copy all projects to /dev/shm/* (Optimization for files read/write)

Frameworks list

* zf: Zend Framework
Site: http://framework.zend.com
Ver: 1.11.11

* zf2: Zend Framework
Site: http://framework.zend.com
Site: https://github.com/zendframework/ZendSkeletonApplication
Ver: 2.0.0-beta1

* symfony: symfony
Site: http://www.symfony-project.org
Ver: 2.0.0

* cakephp: CakePHP
Site: http://cakephp.org
Ver: 2.0.4

* ci: CodeIgniter
Site: http://codeigniter.com
Ver: 2.1.0

* yii: Yii Framework
Site: http://www.yiiframework.com
Ver: 1.1.8

* micromvc4: MicroMVC
Site: http://www.micromvc.com
Ver: 4.0.0

* laravel: Laravel, A PHP Framework For Web Artisans
Site: http://laravel.com
Ver: 2.0.2

* slim: Slim Framework
Site: http://www.slimframework.com
Ver: 1.5.0

* yaf: Yet Another Framework in PHP Extension
Site: http://code.google.com/p/yafphp
Ver: 2.1.3-beta (yaf.cache_config=1)

* FuelPHP: Simple, Flexible, Community driven Web Framework
Site: http://fuelphp.com/
Ver: 1.1

* ColaPHP:
Site: http://code.google.com/p/colaphp/
Ver: 1.2-ga

# XHProf: A Hierarchical Profiler for PHP
Site: http://pecl.php.net/xhprof
Ver: 0.9.2

# The source code of this testing:
Source: https://github.com/eryx/php-framework-benchmark

1. Apache Benchmark

Запросов в секунду (-c 100 -n 30000), чем больше, тем лучше
Сравнение производительности PHP Фреймворков

Запросов в секунду секунду (-c 200 -n 50000), чем больше, тем лучше

Сравнение производительности PHP Фреймворков

2. System LoadAvg
System LoadAvg за 1 минуту после завершения теста Apache, чем меньше, тем лучше (-c 100 -n 30000)Сравнение производительности PHP Фреймворков

3. Memory usage
Сколько памяти используется на одной странице "hello world". чем меньше, тем лучше.
Сравнение производительности PHP Фреймворков

4. Response time
Время ответа страницы после запроса чем меньше, тем лучше.Сравнение производительности PHP Фреймворков

5. Number of function calls (Facebook XHProf)
Количество вызовов функций на одной странице "hello world" .Сравнение производительности PHP Фреймворков

ПРОПУСКНАЯ СПОСОБНОСТЬ(количество запросов в секунду)

В общих чертах, пропускная способность - это максимальная скорость производства или максимальная скорость, с которой что-либо может быть обработано.

Применяя это к нашей ситуации, эта характеристика измеряется количеством запросов, которые наша структура может обработать за секунду. Следовательно, чем выше это число, тем продуктивнее наше приложение, поскольку оно способно правильно обрабатывать запросы большого количества пользователей.

Для новых версий фремворков лидеры немного изменились:
Сравнение производительности PHP Фреймворков

Количество запросов в секунду различными фремворками при использовании PHP 5.6

Сравнение производительности PHP Фреймворков

Количество запросов в секунду различными фремворками при PHP 7.0

Сравнение производительности PHP Фреймворков

Количество запросов в секунду различными фремворками при исползовани PHP 7.1

Сравнение производительности PHP Фреймворков

Сводная диаграмма количество запросов в секунду различными фремворками при использовании различных версий PHP

ПИКОВАЯ ПАМЯТЬ

Эта характеристика (в МБ - мегабайтах) отвечает за максимальный объем памяти, используемый платформой для выполнения порученной ей задачи, поэтому, чем меньше это число, тем лучше для нас и для сервера:

Сравнение производительности PHP Фреймворков

Количество занимаемой памяти одного процесса различными фремворками при использовании PHP 5.6

Сравнение производительности PHP Фреймворков

Количество занимаемой памяти одного процесса различными фремворками при использовании PHP 7.0

Сравнение производительности PHP Фреймворков

Количество занимаемой памяти одного процесса различными фремворками при использовании PHP 7.1

Сравнение производительности PHP Фреймворков

Количество занимаемой памяти одного процесса различными фремворками при использовании

Сводная схема хранения (по фреймворкам)

ВРЕМЯ ИСПОЛНЕНИЯ

Время выполнения - это время, которое требуется системе для выполнения задачи. Об этом говорит сайт https://intellect.icu . Время отсчитывается от начала выполнения задачи до момента выдачи системой результата.

Вычислить это довольно просто. Мы выяснили, сколько запросов в секунду может обработать фреймворк и сколько памяти это занимает. Теперь посмотрим, сколько времени потребуется, чтобы получить ответ от сервера. Опять же, логично, что чем ниже это значение, тем лучше для нас и для нервной системы клиента нашего приложения.

Вы можете увидеть сравнительную таблицу времени выполнения запроса на разных фреймворках при использовании разных версий PHP. Время указывается в миллисекундах (мс).

Сравнение производительности PHP Фреймворков

PHP 5.6

Сравнение производительности PHP Фреймворков

PHP 7.0

Сравнение производительности PHP Фреймворков

PHP 7.1

Сравнение производительности PHP Фреймворков

Сводная схема хранения (по фреймворкам)

Детали вызовов функций function call stack

Symfony2 Сравнение производительности PHP Фреймворков Zend Framework 1.11.1 Сравнение производительности PHP Фреймворков
Zend Framework 2.0.0-beta1 Сравнение производительности PHP Фреймворков CakePHP 2.0.4 Сравнение производительности PHP Фреймворков
CodeIgniter 2.1.0 Сравнение производительности PHP Фреймворков Yii Framework 1.1.8 Сравнение производительности PHP Фреймворков
Slim 1.5 Сравнение производительности PHP Фреймворков Laravel 2.0.2 Сравнение производительности PHP Фреймворков
MicroMVC 4.0.0 Сравнение производительности PHP Фреймворков Yaf 2.1.3-beta Сравнение производительности PHP Фреймворков
FuelPHP 1.1 Сравнение производительности PHP Фреймворков ColaPHP 1.2 Сравнение производительности PHP Фреймворков

6. Number of Files

ВКЛЮЧЕННЫЕ ФАЙЛЫ

Эта характеристика отвечает за количество включаемых файлов, которые описаны в файловой «точке входа» фреймворка. Понятно, что система тратит какое-то время на поиск и подключение. Следовательно, чем меньше количество файлов, тем быстрее будет запущено приложение в первый раз. Обычно в следующий раз фреймворк работает с кешем, что ускоряет работу:

Сравнение производительности PHP Фреймворков

Разница между Laravel 5.3 и Laravel 5.4 в количестве включаемых файлов может показаться странной и вызвать дискуссии и споры. Спешим прояснить ситуацию. Как известно, спасибо команде - Php artisan optimize - force.

В Laravel 5.3 вы можете сгенерировать файл compiled.php , тем самым уменьшив количество подключенных файлов, собрав их в один. Но есть одно исключение - команды для создания этого файла в Laravel 5.4 больше нет. Разработчик решил удалить эту функцию, поскольку считает правильным использовать opcache для настройки производительности.


Количество файлов, подключенных или необходимых на одной странице «Привет мир». чем меньше, тем лучше.Сравнение производительности PHP Фреймворков

ВЫВОД

Этого и следовало ожидать - безоговорочным лидером по производительности (но не по скорости разработки) является Phalcon. Второе место, но, по сути, первое место среди PHP-фреймворков (но не C, на котором написан исходный код Phalcon) занимает CodeIgniter 3!

Конечно, не забывайте, что у каждого инструмента свое предназначение. Если вы выберете небольшой и легкий фреймворк и собираетесь писать что-то отличное от простейших приложений или REST API, используя его, то вы, вероятно, столкнетесь с проблемами при расширении функциональности, и наоборот - избыточностью полнофункциональных, большие фреймворки повлекут за собой финансовые затраты на размещение контента даже для элементарных приложений при большой нагрузке.

Это тестирование было направлено на то, чтобы убедить / рассказать / укрепить позицию языка PHP версий 7.0 и 7.1 в вашем сознании, а также, что касается будущих проектов, представить информацию о том, что производительность действительно увеличивается с помощью таблиц и графиков.

Надеюсь, эта статья про сравнение производительности php фреймворков , была вам полезна, счастья и удачи в ваших начинаниях! Надеюсь, что теперь ты понял что такое сравнение производительности php фреймворков и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Из статьи мы узнали кратко, но содержательно про сравнение производительности php фреймворков
создано: 2015-05-08
обновлено: 2024-11-13
308



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)