Платформа зенда, работающая медленный

from numpy.random import multinomial
multinomial(40, [1/4.] * 4)
8
задан Layke 18 October 2012 в 08:04
поделиться

11 ответов

Если вы можете находиться в той же локальной сети, что и сервер (по крайней мере, для тестирования), вы можете проверить свой профиль (частично) с помощью клиента.

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

Кажется, что всегда помогает кеш кода операции PHP, также не забудьте отключить "atime" (noatime mount вариант * nix, изменение реестра в Windows), чтобы избежать дорогостоящей записи на диск.

Достойная статья о более специфических вещах Zend: http://till.vox.com/library/post/zendframework-performance.html

8
ответ дан 3 November 2019 в 12:09
поделиться

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

Я использую xdebug в сочетании с kcachegrind (часть kde для Windows). Он генерирует полные трассировки вызовов для каждого выполняемого сценария PHP, который затем можно проверить, чтобы выяснить, какие функции занимают большую часть времени. Изменения кода не требуется, поэтому вы можете легко профилировать сторонние библиотеки, такие как Zend Framework.

20
ответ дан 3 November 2019 в 12:09
поделиться

Обязательно установите APC, так как это, вероятно, даст вам наибольший прирост производительности (2-4x) при минимальной работе. Я также рекомендую вам взглянуть на раздел Производительность справочного руководства .

Zend_Cache можно использовать со многими компонентами ZF для их ускорения, а также с вашими собственными данные.

6
ответ дан 3 November 2019 в 12:09
поделиться

Установите APC на сервере. Кеши кодов операций устраняют множество накладных расходов, вызванных фреймворками. Обычно это можно сделать, просто запустив

pecl install apc

на сервере.

7
ответ дан 3 November 2019 в 12:09
поделиться

Большинство проблем с производительностью в Интернете - это проблемы с базой данных, всегда начинайте смотреть со стороны базы данных, прежде чем двигаться дальше.

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

Это вещи, которые обычно замедляют работу.

6
ответ дан 3 November 2019 в 12:09
поделиться

Самый очевидный - zend_cache

3
ответ дан 3 November 2019 в 12:09
поделиться

Вам следует ознакомиться с официальным руководством по производительности Zend.
Существует множество советов о том, как настроить скорость Zend, большинство из них касается уменьшения количества файлов, загружаемых zend при запуске.

http://framework.zend.com/manual/en/performance.classloading .html

2
ответ дан 3 November 2019 в 12:09
поделиться

Согласен с комментарием базы данных. Если ваш сайт работает медленно, скорее всего, это НЕ проблема инфраструктуры Zend, а скорее всего проблема с базой данных.

1
ответ дан 3 November 2019 в 12:09
поделиться

Взгляните здесь:

Руководство по производительности на Zend

Zend_Log , которое может регистрировать и отслеживать ваше приложение

3
ответ дан 3 November 2019 в 12:09
поделиться

http://www.nabble.com/Caching-of-MVC-and-other-ZF-components-td15576554s16154.html

Думаю, нам придется подождать PHP5 .3, а затем надеемся, что мы сможем использовать его в производственной коробке. :)

0
ответ дан 3 November 2019 в 12:09
поделиться

Что касается кэширования метаданных Zend_Db_Table , вы должны настроить кеш в загрузочном файле и добавить его в класс Zend_Db_Table_Abstract как статическое свойство.

(Аналогично тому, как вы открываете адаптер базы данных по умолчанию и устанавливаете его в качестве адаптера по умолчанию для всех объектов Zend_Db_Table .)

Пример кода настройки кэша метаданных по умолчанию в раздел руководства, на который вы ссылаетесь. Это войдет в ваш бутстрап.

2
ответ дан 3 November 2019 в 12:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: