Наш магазин Magento работает слишком медленно и занимает около 1 минуты для загрузки страницы. Ниже приведен вывод в профилировщике. Пожалуйста, дайте нам знать, что такое db_update и почему это занимает слишком много времени и как мы можем это исправить.
layout/db_update: default 20.6206 1 0 0
layout/db_update: STORE_default 20.6189 1 0 0
layout/db_update: MAP_popup 20.6146 1 0 0
layout/db_update: MAP_price_msrp_item 20.6131 1 0 0
layout/db_update: SHORTCUT_popup 20.6116 1 0 0
layout/db_update: SHORTCUT_uk_popup 20.6098 1 0 0
layout/db_update: catalog_product_view 20.6077 1 0 0
layout/db_update: PRODUCT_TYPE_simple 20.6062 1 0 0
layout/db_update: customer_logged_out 20.6032 1 0 0
Ты можешь использовать Aoe_Profiler
расширение для отладки деталей. Вы можете установить его отсюда:
https://github.com/AOEpeople/Aoe_Profiler
Также следуйте этому руководству:
http://fbrnc.net/blog/2012/08/magento-profiler#hello
Я думаю, что это поможет вам оптимизировать время, затрачиваемое на различные темы.
Единственное место в коде, где работает этот профиль, это функция Mage_Core_Model_Layout_Update::fetchDbLayoutUpdates
,
Может быть несколько причин, по которым при каждом запуске функции потребуется 20 секунд в порядке вероятности:
Mage::getResourceModel('core/layout')->fetchUpdatesByHandle()
или любая из моделей / помощников, используемых внутри этой функции (которых много).Как упоминалось в другом ответе, вы можете использовать Aoe_Profiler, чтобы получить больше данных для первого случая.
Я лично предпочитаю использовать NewRelic (или аналогичный сервис), потому что он также покажет следы какие части кода, запросы к БД или сторонние API работают медленно, что дает вам более полную картину всего, что может замедлить работу вашего сайта.
(отказ от ответственности: я — партнер NewRelic)