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

Кому-нибудь удалось заставить CakePHP обрабатывать какое-то нестыдное количество запросов в секунду? Я в курсе, что у него с производительностью в целом плохо, но как-то совсем…
  • Вопрос задан
  • 4397 просмотров
Пригласить эксперта
Ответы на вопрос 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 запросами в БД и полудохлой вирт машиной.
«Сколько стоит автомобиль?» — почти так звучит вопрос на который можно ответить только узнав какой автомобиль точно вам нужен.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы