有没有触发来自另一个进程或从内部的WinDBG一个.NET过程垃圾收集的方法吗?
有托管调试助手,迫使一个集合作为您在本机/托管边界移动, AQTime似乎有按钮表明它这样做,但我不能找到如何做的文档。
有没有触发来自另一个进程或从内部的WinDBG一个.NET过程垃圾收集的方法吗?
有托管调试助手,迫使一个集合作为您在本机/托管边界移动, AQTime似乎有按钮表明它这样做,但我不能找到如何做的文档。
嗯...有即时窗口。 如果您有连接到过程的奢侈品,我应该手动你可以GC.Collect的在即时窗口。
更大的问题:为什么你想手动诱发GC.Collect的? 这是一个坏习惯,并指示更大的设计问题。
在回答另一个问题 :
基本上,使用PerfView :
PerfView.exe ForceGC [ProcessName | Process ID] /AcceptEULA
它不是用于生产用途。
约翰Cocktoastan的答案使用GC.Collect的时候在Visual Studio中是最好的选择,如果有。
我仍然无法找到一个替代实际做的WinDBG下的集合,但退后一步来的问题“多少内存是可回收的?” (见我对约翰的回答评论)我认为这是通过使用脚本(替代PowerDBG通过!DumpHeap和!GCRoot的某种组合?)搜索来查找无根手柄和总使用的空间(基本模拟算法在GC会做使用调试器)。 但是,由于这种思想,我还没有这些缺陷使没有试图编写代码来做到这一点的一个。
如果通过Remoting公开的函数/对象,这可能是很容易做到。