我正在尝试使用 Microsoft 的CLRProfiler来分析我相当大的应用程序,每当它尝试写入(或读取)日志文件时,它都会崩溃。具有讽刺意味的是,确切的错误在MS“反馈”网站上记录为不可重现,并且似乎从未得到修复。我得到的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)
Run Code Online (Sandbox Code Playgroud)
有谁知道我如何才能获得帮助,或者最好让这该死的东西正常运行?MSDN 上哀怨的求助请求被忽略了...谢谢!
CLR Profiler 相当不稳定,我也经历过很多次崩溃。
我在 PDC 听到的一个提示是仅将其用作快照工具:在应用程序运行期间不要收集内存使用信息,而是在您知道已经存在内存问题时停止应用程序,并制作内存快照。
这样它就更稳定了,通常从参考图中你可以找出导致泄漏的原因。