2012-02-03 5 views
1

У меня есть приложение, основанное на Zend Framework. Я пытаюсь оптимизировать.Как оптимизировать Zend Framework

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

Например, файл Bootstrap.php, по-видимому, является самым большим глотком в течение 4,553MS секунд, что составляет 92,49% от общего времени.

И если я копаю дальше, я вижу, что Zend_Application_Bootstrap_Boostrap-> запускает большую часть времени. Повторив это, я обнаружил, что Zend_Controller_Front-> Dispatch может фактически быть функцией внутри Boostrap.php, которая требует времени для выполнения.

Вопрос: Из этих показателей, которые у меня есть, как лучше всего я могу оптимизировать приложение? Если он кэширует, как я могу применить кэширование к этой ситуации?

Благодаря

+2

См. Также http://stackoverflow.com/questions/3777765/using-zend-framework-for-highload-projects –

+0

4.5 secs - очень длительное время для Bootstrap. Что делает ваш бутстрап? –

+0

@tim fountain В принципе не так много ... У меня есть 5 модулей, и каждый из этих модулей имеет свой бутстрап. И прямо сейчас, его просто пустое (возможно, нужно добавлять к ним материал по мере необходимости), и только это устанавливает значение в Zend_Registry. Так интересно, почему это так долго: | – dade

ответ

2

От взгляда на callgrinds, на странице входа в приложение тратит большую часть его время в curl_exec, что следует ожидать, если вы делаете удаленного входа в систему. Но он делает 10 отдельных curl_exec, которые кажутся чрезмерными. Я не знаком с авторизацией входа в LinkedIn, но возможно ли, что ваше приложение запускает код удаленного входа несколько раз?

При запросе стандартной страницы приложение тратит большую часть времени на подключение к MySQL, и, похоже, это делается дважды. Используете ли вы удаленный сервер БД, и вам нужны два отдельных соединения с БД?

Предполагая, что вы используете удаленный сервер БД, и он находится в той же сети, что и ваш веб-сервер, там, похоже, есть сетевые проблемы. Я проверил бы задержку на этом сервере, если смогу, и попробую подключиться к IP-адресу вместо имени хоста, чтобы узнать, не имеет значения (если это происходит намного быстрее, это может спровоцировать проблему с настройкой DNS в вашей сети сервер).

+0

Спасибо @Tim Fountain ... вы указатели действительно полезны ... Посмотрите на эту часть системы. – dade

Смежные вопросы