Сокращение накладных расходов на вызовы $ html-> url в приложении CakePHP - PullRequest
0 голосов
/ 24 ноября 2011

У нас есть старое (написанное на CakePHP 1.1!) Приложение, которое начало стонать под тяжестью своих обязанностей, поэтому мы проводим его капитальный ремонт с помощью некоторых консультантов.

Один из выявленных ими «быстрых выигрышей»: на некоторых страницах наблюдается незначительное замедление из-за многочисленных обращений к $ html-> url. По какой-то причине мы в настоящее время не используем маршрутизацию, и даже в будущем необходимость обратной маршрутизации вряд ли вступит в силу, использование $ html-> url может просто создать дополнительные издержки здесь. Некоторые вопросы, которые возникают у меня в голове в любом случае:

(1) Лучше, если возможно, делать что-то «в духе пирога», даже если это медленнее? Существуют ли другие преимущества использования помощника HTML для ссылок, которые могли не учитываться.

(2) В какой-то момент мы планируем перейти на гораздо более современную версию Cake, возможно, вплоть до 2.0. Возможно ли, что нынешняя медлительность использования помощника HTML больше связана с тем, чтобы быть в Cake 1.1, чем изначально плохим дизайнерским решением?

Просто интересует мнение людей в целом по этому вопросу: правильно ли нам отказываться от кропотливого использования помощника HTML или нет?

Ответы [ 2 ]

2 голосов
/ 24 ноября 2011

Обновление до CakePHP 2.0 определенно даст улучшение скорости. Однако остерегайтесь, путь обновления с 1.1 до 2.0 не является гладким. Ожидайте много ручного редактирования.

Что касается нескольких вызовов $ html-> ur (), вы можете найти это полезным:

http://debuggable.com/posts/how-to-save-half-a-second-on-every-request-of-your-cakephp-app:49a69610-8648-4d65-815d-754c4834cda3

1 голос
/ 24 ноября 2011

Я бы лучше подумал:

  • Перезапись HtmlHelper :: url (). Очень удивительно, что такая простая функция оказывает влияние на производительность. Подумайте об использовании версии из будущего выпуска.
  • Кэшируйте представления (или элементы, или извлекайте их в элементы, а затем кешируйте), чтобы они не запускались в каждом запросе.
...