Какова производительность CakePHP?

Кому-нибудь удалось заставить CakePHP обрабатывать какое-то нестыдное количество запросов в секунду? Я в курсе, что у него с производительностью в целом плохо, но как-то совсем…
  • Вопрос задан
  • 4398 просмотров
Пригласить эксперта
Ответы на вопрос 4
eox425
@eox425
Как уже писал комрад opium, xprof — отличная тулза для профилирования РНР приложений.
Если вас интересует субъективное мнение и особенности архитектуры…
В принципе самым слабым местом существующих РНР фреймворков является реализация ORM, кэширования и шаблонизации.
По личному субъективному опыту могу сказать что Yii и Symfony2 имеют самые эффективные реализации этого стафа.
Но у Symfony2 намного более развита инфраструктура, комьюнити… и в целом он для меня намного удобней.
По поводу того что Symfony медленее Yii могу лишь сказать что только в dev mode, в продакшене разницы особо не чувствуется. CakePHP по производительности почти догоняет kohana. В большинстве случаев на производительность самого фреймворка влияет использование Dependency Injection и других паттернов, а также немного паттерн самого ORMа — Active Record или Object Mapping.

APC не тортъ. Лучше если вы возьмете xcache и будете кэшировать в нем байткод приложения и запросы к базе.
memcached не тортъ для кэширования запросов БД если у вас только одна машина. Т.е. memcached хорошо использовать в кластере. В остальных случаях xcache быстрее так как он реализован в виде плагина к РНР.

Не раз был свидетелем мем. лика memcached… не забывайте задавать ttl объектов в кэше! Это довольно распространенная ошибка. Реализовуйте поддержку etags и if-modified-since хеддеров для http кэширования каждой страницы по mark-tagged принципу. И тогда за nginx'ом вам вообще не придется беспокоится о производительности фреймворков…
Некоторые Yii извращенцы на офф. форуме фреймворка писали что если использовать с xcache параллельно eaccelerator, то можно добиться довольно впечатляющих результатов. Не знаю правда ли это… но советую вам проверить.

Вообще я перелез с РНР фреймворков (перепробовал почти все актуальные) на Grails чем вполне доволен.
Сейчас практикую связку angular.js на node.js < — json-rpc/rest --> grails/play2.
Смысл в том что бы шаблоны на сервере и клиенте были одинаковыми… хочу написать об этом статью.
Позволяет сэкономить кучу времени и самое главное — привет клиентская шаблонизация без гемороя и вреда для SEO.
Ответ написан
opium
@opium
Просто люблю качественно работать
а сколько для вас не стыдное?
Около 100 он вполне может обрабатывать, а то и больше, просто нужны оптимизации кода и серверного окружения.
Ответ написан
AterCattus
@AterCattus
Люблю быстрый backend
8 Ways to Speed Up the Performance of CakePHP Apps?
Выключить дебаг, кеширование на уровне движка, APC…
Ответ написан
Комментировать
Разговор ни о чем. У вас на сайте возможно на главной странице карта с 100 тыс точек и мощный сервер или статичная страница с парой новостей и 5-6 запросами в БД и полудохлой вирт машиной.
«Сколько стоит автомобиль?» — почти так звучит вопрос на который можно ответить только узнав какой автомобиль точно вам нужен.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы