ASP.NET Профилирование

#asp.net #profiling

#asp.net #профилирование

Вопрос:

У меня медленный asp.net программа запущена. Я хотел бы профилировать рабочий сервер, чтобы увидеть, что происходит, но я не хочу заметно замедлять работу производственного сервера.

В общем, это стандартная практика профилирования производственного блока или только локальных блоков разработки? Кроме того, какие программы вы рекомендуете для достижения этого?

Ответ №1:

Я могу порекомендовать вам использовать «dynatrace Ajax edition 3» для профилирования на стороне клиента (это бесплатный и простой инструмент) и «JetBrains dotTrace» для профилирования на стороне сервера. Насколько я знаю, эти инструменты не замедляют работу сервера.

Ответ №2:

Вы можете использовать Tracing и рекомендуется проверять эти вещи на вашем локальном компьютере, но если вы хотите что-то проверить на сервере, вы можете включить трассировку для краткости в вашем web.config.

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

ASP.NET Обзор трассировки

Трассировка в ASP.NET

Ответ №3:

Я думаю, ответ действительно «это зависит»! Я бы начал с рассмотрения того, медленно ли выполняется программа только на производственном сервере или она медленно выполняется и в среде разработки. Я бы также подумал о том, насколько близко я мог бы привести свою среду разработки / тестирования в соответствие с производственной средой.

Как только вы это сделаете, подумайте, есть ли какие-либо области, которые могут представлять собой очевидные узкие места, которые вы могли бы устранить. Так, например, является ASP.NET приложение, поддерживаемое какой-либо формой базы данных? Если это так, вы можете отслеживать производительность базы данных отдельно и установить, в этом ли заключается проблема.

Далее, постарайтесь быть очень конкретным в том, что вы подразумеваете под «низкой производительностью». Это постоянно медленно (по сравнению с чем?), или просто когда вы выполняете определенные действия. Это может дать вам еще один ключ к пониманию того, в чем заключается ваша проблема, или, по крайней мере, какие вопросы вам следует задать.

Ответив на множество этих вопросов, я бы затем запустил ANTS Performance Profiler, чтобы попытаться определить, что происходит. При профилировании приложения накладные расходы довольно минимальны, и в любом случае вы должны запускать его в течение довольно короткого времени, поскольку, надеюсь, к этому моменту у вас появятся более конкретные вопросы, на которые вы хотите ответить, или конкретные действия, в которых вы хотите разобраться.

Ответ №4:

Ваш лучший вариант — префикс (http://www.prefix.io ). Это позволит вам просматривать все ваши SQL-запросы, журналы, HTTP-вызовы и многое другое.

Другим вариантом является Glimpse или мини-профилировщик.