#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 трассировка может быть интегрирована с трассировкой системного уровня для обеспечения нескольких уровней вывода трассировки в распределенных и многоуровневых приложениях.
Ответ №3:
Я думаю, ответ действительно «это зависит»! Я бы начал с рассмотрения того, медленно ли выполняется программа только на производственном сервере или она медленно выполняется и в среде разработки. Я бы также подумал о том, насколько близко я мог бы привести свою среду разработки / тестирования в соответствие с производственной средой.
Как только вы это сделаете, подумайте, есть ли какие-либо области, которые могут представлять собой очевидные узкие места, которые вы могли бы устранить. Так, например, является ASP.NET приложение, поддерживаемое какой-либо формой базы данных? Если это так, вы можете отслеживать производительность базы данных отдельно и установить, в этом ли заключается проблема.
Далее, постарайтесь быть очень конкретным в том, что вы подразумеваете под «низкой производительностью». Это постоянно медленно (по сравнению с чем?), или просто когда вы выполняете определенные действия. Это может дать вам еще один ключ к пониманию того, в чем заключается ваша проблема, или, по крайней мере, какие вопросы вам следует задать.
Ответив на множество этих вопросов, я бы затем запустил ANTS Performance Profiler, чтобы попытаться определить, что происходит. При профилировании приложения накладные расходы довольно минимальны, и в любом случае вы должны запускать его в течение довольно короткого времени, поскольку, надеюсь, к этому моменту у вас появятся более конкретные вопросы, на которые вы хотите ответить, или конкретные действия, в которых вы хотите разобраться.
Ответ №4:
Ваш лучший вариант — префикс (http://www.prefix.io ). Это позволит вам просматривать все ваши SQL-запросы, журналы, HTTP-вызовы и многое другое.
Другим вариантом является Glimpse или мини-профилировщик.