Ускорение CakePHP - PullRequest
       10

Ускорение CakePHP

38 голосов
/ 20 апреля 2010

Я являюсь страстным поклонником и пользователем CakePHP уже около 2,5 лет, но главная ошибка, которую большинство коллег-разработчиков на уровне фреймворка, заключается в том, что он медленный, и цикл отправки занимает слишком много времени, чтобы сделать его жизнеспособным решением для производственных сред.

Я надеюсь, что этот вопрос вдохновит людей поделиться своими советами, хитростями и хитростями для повышения производительности CakePHP.

Пост блога, на который я чаще всего ссылаюсь, - это 8 способов псевдокодера для повышения производительности приложений CakePHP , в котором есть отличные советы, но там должно быть больше!

Поэтому, пожалуйста, не стесняйтесь делиться своими мыслями о том, как сделать эту превосходную платформу намного более гибкой!

Ответы [ 6 ]

31 голосов
/ 21 апреля 2010

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

  1. Как уже упоминалось в комментариях к этой статье, сокращение массива $uses немного помогает. Вы можете получить доступ к связанным моделям, пройдя через их ассоциацию. Таким образом, если город и адрес связаны, вы можете получить доступ к адресу по $this->City->Address вместо включения обоих в массив $uses

  2. В apache переместите код из .htaccess в основной сервер config / vhost / what и установите AllowOverride None.

  3. В среде с балансировкой нагрузки переместите сеансы из БД в memcache. Memcache очень прост в настройке, а сеансовый класс DB оставляет желать лучшего. В приложениях с высокой нагрузкой сборка мусора убьет вас, так как она запускается каждую секунду или около того. Кроме того, вот отличный маленький скрипт, который дает вам статистику об использовании memcache (на основе apc.php) http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/

  4. Как отмечает Марк Стори в разделе комментариев статьи о 8 путях, сжатие ваших активов - очень хорошая идея. Вот хороший сценарий, который минимизирует файлы js и css, которые можно использовать для замены стандартного css.php, который поставляется в комплекте с cake. http://www.milesj.me/blog/read/32/CSSJSAsset-Compression-In-CakePHP

  5. Если по какой-то причине люди сталкиваются с множеством изображений / css / js, которые больше не существуют, может быть полезно убедиться, что эти страницы не генерируют ошибку «торт 404», поскольку она должна проходить через весь процесс отправки торта, генерация сеанса и т. д. Это так же просто, как изменить это:

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
    

    на это:

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !^/(img|css|js)/(.*)$
    RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
    
8 голосов
/ 13 февраля 2012

Я только что написал еще несколько советов, чтобы резко ускорить работу приложений CakePHP с приложенным практическим кодом: http://www.dereuromark.de/2012/02/13/what-really-speeds-up-your-cakephp-app/

3 голосов
/ 22 февраля 2011

Несколько полезных советов, включая использование модифицированного помощника router::url для повышения производительности, а также здравый смысл:

http://www.chainfire.eu/articles/76/CakePHP_and_performance_for_noobs_/

1 голос
/ 22 ноября 2013

Как для CakePHP, так и для других целей, просто получите более мощный сервер, больше ГГц и ОЗУ.Цены дешевеют с каждым годом.Хотя, если вы используете VPS, я понимаю, что все может быть сложно.

И иногда новое оборудование дешевле, чем платить кому-то за оптимизацию кода ...

0 голосов
/ 30 мая 2018

Мы используем Memcache для статических данных, которые поступают из базы данных, таких как баннеры, aboutus, address и многие другие. Мы удаляем файл кэша, когда данные вставляются, обновляются или удаляются. Во время запроса мы сначала проверяем файл, если он есть, затем берем данные из файла json, нет необходимости запрашивать базу данных, в противном случае запрашивать и создавать новый файл. Поэтому в следующий раз данные будут получены от Json.

0 голосов
/ 13 августа 2013

Для Minify css и Js в cakephp 2 вы можете использовать один из плагинов

https://github.com/Er-Kalpesh/CakePHP-Combinator-Plugin

, который лучше всего подходит для оптимизации CSS и JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...