Проблема с CLRProfiler
Я пытаюсь использовать Microsoft CLRProfiler для профилирования моего довольно большого приложения, и оно терпит крах, когда оно пытается записать (или прочитать) файл журнала. По иронии судьбы, точная ошибка задокументирована на сайте MS "Feedback" как не воспроизводимая и, похоже, никогда не была исправлена. Я получаю NullReferenceException
в:
CLRProfiler.ReadNewLog.ReadFile(Int64 startFileOffset, Int64 endFileOffset, ReadLogResult readLogResult)
at CLRProfiler.MainForm.checkProcessTimer_Tick(Object sender, EventArgs e)
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
У кого-нибудь есть идеи, как я могу получить помощь или, в идеале, заставить эту чертову штуку правильно работать? Жалобы на помощь в MSDN были проигнорированы... Спасибо!
3 ответа
CLR Profiler довольно нестабилен, у меня также было много сбоев.
Один совет, который я слышал на PDC, - это использовать его только в качестве инструмента моментальных снимков: не собирайте информацию об использовании mem во время работы приложения, но остановите приложение в тот момент, когда вы знаете, что у вас уже есть проблема с mem, и сделайте снимок памяти.
Таким образом, он намного более стабилен, и обычно по справочному графику вы в любом случае можете выяснить, что является причиной утечки.
Я подозреваю, что это мертвый проспект. Возможно, попробуйте jetBrains dotTRACE; Вы можете получить бесплатную 10-дневную пробную версию, чтобы увидеть, подходит ли она.