Как отладить высокую загрузку процессора?

#c#-3.0

#c #-3.0

Вопрос:

Какие инструменты использовать, чтобы выяснить причину высокой загрузки процессора в приложении .net?

WPF / C # 3.0 / .net 3.5

Ответ №1:

Примените профилировщик, чтобы понять, где используется процессор: какие части вашего кода «горячие». Затем вы можете просмотреть дизайн этих частей кода.

Обратите внимание, высокая загрузка процессора может быть вполне разумной.

Комментарии:

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

Ответ №2:

Сначала вам нужно выяснить, где ваше приложение тратит большую часть процессорного времени — я предлагаю вам запустить профилировщик производительности, такой как:

  1. JetBrains dotTrace
  2. Профилировщик производительности ANTS

И посмотрите, где вы проводите большую часть времени. Если вы хотите определить конкретные узкие места, вы можете попробовать использовать Stopwatch. Подробности я написал в своем блоге.

Комментарии:

1. не уверен, поможет ли использование Stopwatch понять, какие части кода вызывают высокую загрузку процессора.

2. @MainMa Использование stopWatch полезно, только если у вас уже есть некоторые подозрения и вы хотите это проверить. В противном случае используйте профилировщик

Ответ №3:

Согласен, вам нужен профилировщик. Visual Studio 2010 Premium или Ultimate Edition имеет встроенный профилировщик. Я не использовал его, но он должен быть полезен в качестве альтернативы dotTrace или ANTS.

http://msdn.microsoft.com/en-us/library/z9z62c29.aspx

Ответ №4:

VS2013 уже поставляется с очень хорошим встроенным профилировщиком