Сначала вам нужно решить, что вы тестируете, будь то время рендеринга PHP или реальное время загрузки страницы.
В любом случае использование firebug не будет надежным, так как само ваше интернет-соединение может стать узким местом или причиной дрожания.
Время рендера PHP
Если вы просто хотите посмотреть, улучшилось ли / изменилось ли время рендеринга в PHP - тогда самый точный способ - использовать выходные данные профилировщика Magento.
В index.php
, раскомментировать
Varien_Profiler::enable();
Затем в
Администратор> Система> Конфигурация> Разработчик
Убедитесь, что профилировщик включен.
В итоге вы получите табличный вывод внизу каждой страницы (передний и задний), разбивающий время загрузки страницы, измеренное с момента Mage::run()
запуска. Самая первая строка будет указывать общее время рендеринга PHP (в пределах Mage).
Это будет ваш самый точный показатель с точки зрения определения, если ваши изменения PHP влияют на время загрузки страницы, не говоря уже о том, что он выявит любые узкие места производительности.
Время рендеринга PHP веб-сервера
Следующий тип теста должен учитывать накладные расходы самого веб-сервера (но не подключение последней мили). Таким образом, чтобы этот тест был точным и не зависел от самого «Интернета» - вы должны запустить его на самом веб-сервере.
Мы используем нашу собственную утилиту mage-perftest
(более подробную информацию можно найти здесь ), которая может тестировать чистое время рендеринга PHP, реальное время загрузки страницы и даже тестирование параллелизма.
Чтобы проверить только время рендеринга веб-сервера PHP, вы должны использовать (соответственно заменить URL)
./mage-perftest -u me-s1.sonassihosting.com -b
Этот тест даст разбивку времени загрузки страницы (только для элемента PHP страницы, игнорируя любые JS / CSS / Images). Вывод выглядит примерно так,
Test Summary
============
Total files: 1
Total downloaded: 4K
Avg. page weight: 4.00K
Total time: 0.035s
Min response: 0.035s
Max response: 0.035s
Avg. page response: 0.03s
Concurrency/Repeats: 1
Transactions/s 28.57
Test URL: me-s1.sonassihosting.com
Success rate: 1/1 (100.00%)
Время рендеринга веб-сервера реального мира
Последний тип теста - это время, необходимое для загрузки всей страницы (PHP + статический контент). Опять же, вы можете использовать mage-perftest
для этого, например.
./mage-perftest -u me-s1.sonassihosting.com
Избегайте любых услуг онлайн-тестирования, таких как чума
Существуют некоторые инструменты для онлайн-тестирования скорости, такие как GTMetrix, Pingdom и т. Д. Они не дают точного результата для детального профилирования.
Они имеют свое место с точки зрения тестирования подключения к внешней сети, но совершенно бесполезны как средство проверки фактической производительности PHP. Придерживайтесь на сервере / локального тестирования для этого.
Другие заметки
Мы написали статью о дистанционном тестировании и о том, почему вы должны избегать этого,
http://www.sonassi.com/knowledge-base/magento-kb/why-siege-isnt-an-accurate-test-tool-for-magento- производительность/
Запуск Magento в VPS - плохая идея. Другие могут не согласиться - но это не подходящая среда для магазина Magento по ряду причин - и мы ответили на МНОГИЕ вопросы по этой теме, вот несколько
mage::dispatch::routers_match
иmage::dispatch::controller::action::predispatch
кажется, что это узкое место, хотя я не уверен, какое есть решение ... поиск не дает много.mage::dispatch::routers_match
, что составляет 22 секунды при загрузке страницы 28 секунд. На той же нагрузке есть такжеmage::dispatch::controller::action::predispatch
в 22,CORE::create_object_of::Mage_Core_Model_Session
в 21 иMage_Core_Model_Session_Abstract_Varien::start/start
в 21 с. Я уверен, что происходит какая-то родительская / дочерняя вещь, ноrouters_match
поскольку она самая длинная, я предполагаю, что это родитель других 20 секундных функцийMage
, потребуется больше всего времени, поскольку он включает в себя все,Routers_Match
в основном это следующая функция, которую он вызывает, из которой все остальное порождается. Это не узкое место, а то, что он называет (смотрите дальше по столу). Не открывайте более 1 окна, если вы профилируете - это ничего не даст.Routers_Match
есть:DISPATCH EVENT:controller_action_predispatch
в 21.0710 иOBSERVER: log
в 21.0565Скорее всего, это проблема сервера, а не проблема Magento. В зависимости от того, какой тип сервера вы используете, вы можете получить время загрузки менее секунды. Вы можете даже выполнить более сложное тестирование здесь: http://www.magespeedtest.com/ . Вы также можете проверить скорость у других провайдеров серверов.
Я бы порекомендовал также использовать отчет о водопаде с http://www.webpagetest.org/ и посмотреть, откуда именно может исходить ваша «медлительность». Он разбит его на части (например, сколько времени потребуется для загрузки каждого файла CSS, JS и изображения), что может помочь вам повысить скорость.
При этом, даже если вы оптимизируете код Magento, CSS, JS, изображения и контент в полной мере, сервер всегда будет самой большой проблемой. Я бы порекомендовал использовать хостинг-провайдера Magento, так как их серверы более точно настроены для помощи Magento. Лично я использую Nexcess, но о других хороших вещах, о которых я слышал, это Sonassi Hosting и Peer1.
Есть несколько статей о том, как улучшить скорость, я бы порекомендовал прочитать белые страницы на сайте Magento.
Несмотря на то, что он больше ориентирован на Enterprise, вы все равно можете воспользоваться многими советами. Кроме того, убедитесь, что вы держите Magento в курсе! Вы не должны упасть больше, чем две версии из текущего выпуска.
источник