Intereting Posts
Как получить данные наведения (ajax) с помощью любого сканера php цвет изменения поля для jpgraph Почему mysqli_connect () «неопределенная функция» на моем сервере PHP? Завершите мои URL с завершающим косой чертой (/) или нет? И как мне это сделать с помощью codeigniter DENY прямая загрузка файла с использованием php вставка нескольких строк в базу данных на codeigniter file_get_contents не работает на производственном сервере, отлично работает на локальном Php Обеспечение уникального имени пользователя Отправлять выделение из выпадающего меню Bootstrap до $ _POST PHP MySQL вставляет многомерный ассоциативный массив, строящий запрос из ключей массива Проверить значение NULL в переменной, которая не может быть установлена Запрос силы MySQL для возврата NULL Смит-Уотерман для строки в PHP? Изменение времени выполнения PHP в зависимости от времени ожидания интернет / соединения? Прочитать исходный код с помощью PHP

Ускорение CakePHP

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

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

Сообщение в блоге, которое я чаще всего упоминаю, находится здесь, http://www.pseudocoder.com/archives/8-ways-to-speed-up-cakephp-apps. У которого есть отличные советы, но там должно быть больше!

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

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

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

  2. В apache переместите код из вашего .htaccess в главную конфигурацию сервера / vhost / whatever и установите AllowOverride None .

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

  4. Как отмечает Mark Story в разделе комментариев статьи 8-го порядка, сжатие ваших активов – очень хорошая идея. Вот хороший скрипт, который минимизирует файлы js и css, которые можно использовать для замены по умолчанию css.php, который поставляется в комплекте с тортом. 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] 

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

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

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

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

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

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

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

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