Подтвердить что ты не робот

Каковы способы поиска узких мест в веб-приложении?

Как оценить производительность моих веб-приложений?

Есть ли способ узнать узкие места в веб-приложении?

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

4b9b3361

Ответ 1

Что касается узких мест на сервере приложений, вы можете использовать инструмент профилирования, чтобы узнать, сколько времени потрачено на каждую часть вашего кода, как используется много памяти и т.д. Для PHP webgrind кажется популярным способом профилирования на основе графического интерфейса. Что-то вроде dotTrace будет делать то же самое для приложения ASP.NET. Обратите внимание, что когда дело доходит до баз данных, такие инструменты профилирования будут показывать только те запросы баз данных, которые медленны, а не почему они медленны. Для этого вам нужно будет изучить профилирование базы данных...

Еще один аспект узких мест в веб-приложениях - это то, сколько времени на самом деле занимает браузер, чтобы сбрасывать все (импорт и импорт CSS и JavaScript, изображения и т.д.) и отображать страницу. Есть несколько компаний, таких как Keynote, у которых есть боты, которые попадут на ваш сайт со всего мира, проанализируют производительность и дадут вам рекомендации относительно изменения, которые вы можете сделать, чтобы получить выход вашего приложения в браузер и отобразиться как можно быстрее (например, "использовать сжатие gzip и разместить свой JavaScript в конце страницы вместо головы" и т.д.). Разумеется, вы также можете сделать это самостоятельно. Например, плагины Firefox, такие как Jiffy и YSlow будут выполняйте эту работу.

Ответ 2

Для любого веб-приложения вы можете попробовать использовать расширение Firebug вместе с расширением Yahoo YSlow (Firebug). Очень полезно в производительности страницы. http://developer.yahoo.com/yslow/

Ответ 4

Fiddler - хороший инструмент для ведения журнала трафика и мониторинга. Он работает на клиенте, и вы можете видеть, какие запросы и ответы идут между клиентом и веб-сервером. Вы можете легко анализировать медленные страницы и определять причины (для многих запросов, большой страницы,...)

В частности, для ASP.Net существует механизм трассировки, который может создавать подробный журнал для веб-приложений. Журнал показывает информацию о времени, и вы можете найти длинные функции. (Статья MSDN: Обзор трассировки ASP.NET

Ответ 5

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

в Unix/Linux вы можете использовать команду "top"

в Windows используйте диспетчер задач (расширенный)

Ответ 6

Не могли бы вы более подробно рассказать о платформе (XP, Vista, Server 2000, 2003, 2008) и методе запуска приложения (IIS, Windows Service). Как упоминалось выше, трассировка является хорошим началом, но есть и другие инструменты, зависящие от среды, в которой также настроено веб-приложение.

Ответ 9

Включите функцию трассировки, trace = true, если это веб-приложение, и введите инструкции трассировки в начале и конце ваших методов, которые срабатывают. Это даст вам очень подробное считывание тиков в системе и, следовательно, сколько времени каждая часть будет выполнять.

Если у вас есть библиотека, которая вызывается, вы также можете сделать трассировку в ней, используя httpcontext.Current.Trace.Write, чтобы вывести то, что вам нужно посмотреть. Альтернативно, если ваше приложение действительно тонкое, вы можете написать свою собственную функцию для хранения операторов трассировки в общей переменной и записать ее в БД или другой механизм после запуска script.

Ответ 10

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

Мне нравится использовать HTTP-прокси-инструмент, например Charles, чтобы выполнить этот тип анализа.

Ответ 11

Первый шаг - быстрый и грязный. Попробуйте это на iPhone, ноутбуке с 3G-соединением, ПК со спутниковым интернет-соединением и мобильным КПК для Windows. Если это сработает, все готово. Если нет, триангуляция.