Можно создать дубликат:
Any Good Free .NET Profiler?Мой контроль ужасно медленный. Кто-нибудь знает ЛЕГКО-ИСПОЛЬЗУЙТЕ, БЕСПЛАТНЫЙ профилировщик для разработки C#?
я в настоящее время developping контроль, который должен нарисовать Heatmap в режиме реального времени при температуре около 20Гц. Это потребляет очень много ресурсов процессора, и я хотел бы знать, какие вызовы функций замедляют это, так что у меня сложилось впечатление, что я уже использую довольно эффективный алгоритм (только изменения областей, которые изменились, а не создание каких-либо новых GDI связанных с объектами, если это не требуется, очистка после себя с помощью Dispose() и т. д.) Поэтому любые рекомендации относительно профилировщика, который удовлетворяет указанным условиям или относительно дальнейшей оптимизации моего алгоритма, будут приветствоваться.
EDIT: Я использовал профилировщик EQATEQ и выяснил, что не имеет значения, изменил ли я Graphics.Clip
. Оказывается, нужно объявить новый объект Region
, изменить его, а затем вызвать Graphics.Clip = myNewRegionObjet
вместо прямого изменения Graphics.Clip
. Это очень странно, так как обычно нужно передать ссылку, и поэтому внесение изменений в объект не должно быть проблемой !? Здесь описывается странное поведение: http://msdn.microsoft.com/en-us/library/system.drawing.graphics.clip.aspx Я сменил свой контроль, что привело к тому, что более чем в 10 раз ускорение. Теперь его достаточно быстро. :-) У кого-нибудь есть идея, почему свойство Graphics.Clip
действительно демонстрирует это странное поведение?
вы используете Visual Studio? –
yes, vs 2008 professional – meanandvicious
Проверьте этот вопрос: http: // stackoverflow.com/questions/308816/any-good-free-net-profiler –