Тестирование PHP фреймворков. Часть 4. Phalcon
Ну вот я и добрался до тестирования первого фреймворка согласно моего плана.( Подробнее в первой части )
Немного о фреймворке:
Официальный сайт: https://phalconphp.com/ru/
Позиционирует себя как самый быстрый фреймворк. Поставляется как С-раcширение. Загружается в память одним файлом и используется всеми приложениями. Подробнее на сайте.
Перейдем к тестированию.
После нескольких попыток настройки сервера остановился на варианте:
centos 7.2 + vestacp + apache2.4 + php 7.0.20 + mariadb 5.5.52 (Думаю попозже ставить 10. Что посоветуете? )
Напоминаю о структуре приложения:
Начальная страница(phalcon-index). Страница авторов(phalcon-authors), Страница категорий(phalcon-categories), Страница из 1000 постов с выбором имен всех категорий по каждому посту(phalcon-posts). Подробнее о структуре приложения .
Тесты запускал несколько раз чтобы убедиться в примерной повторяемости значений.
первый прогон
|framework |requests per second|relative|peak memory|relative|
|-------------------|------------------:|-------:|----------:|-------:|
|phalcon-index | 303.86 | 4,340.9| 0.44 | 1.0 |
|phalcon-authors | 31.66 | 452.3 | 0.56 | 1.3 |
|phalcon-categories | 16.84 | 240.6 | 0.57 | 1.3 |
|phalcon-posts | 0.07 | 1.0 | 3.60 | 8.2 |
второй прогон
|framework |requests per second|relative|peak memory|relative|
|-------------------|------------------:|-------:|----------:|-------:|
|phalcon-index | 302.00| 4,314.3| 0.44| 1.0|
|phalcon-authors | 31.58| 451.1| 0.56| 1.3|
|phalcon-categories | 16.95| 242.1| 0.57| 1.3|
|phalcon-posts | 0.07| 1.0| 3.60| 8.2|
третий прогон
|framework |requests per second|relative|peak memory|relative|
|-------------------|------------------:|-------:|----------:|-------:|
|phalcon-index | 314.19| 4,488.4| 0.44| 1.0|
|phalcon-authors | 30.91| 441.6| 0.56| 1.3|
|phalcon-categories | 17.46| 249.4| 0.57| 1.3|
|phalcon-posts | 0.07| 1.0| 3.60| 8.2|
В общем как и ожидалось - чем больше связей между таблицами - тем хуже результат.
На результаты выдачи по каждой странице можно глянуть тут:
- http://php-frameworks.semasping.info/phalcon-3.2/public/
- http://php-frameworks.semasping.info/phalcon-3.2/public/authors
- http://php-frameworks.semasping.info/phalcon-3.2/public/categories
- http://php-frameworks.semasping.info/phalcon-3.2/public/posts
Немного графиков. Только в картинном варианте. Как сюда засунуть живые графики я не нашел...
Код приложения можно рассмотреть на github https://github.com/semasping/php_frameworks_for_tests
Далее возникает вопрос:
- а как же поведет себя laravel?
- Сколько запросов в секунду выдаст он на самом сложном варианте при отображении информации о постах?
Работа над приложением на laravel уже в процессе - результаты скоро.
ps:
Немного печалит малая активность голосующих и низкий интерес к теме. Предлагаю в комментарии приглашать любых знакомых программистов. Думаю что всем программистам такая тема не безразлична. Да и местных китов с дельфинами можно пригласить проголосовать.
Подписывайтесь. Голосуйте. Мне нужна ваша поддержка.