首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制在远程CLR进程中进行垃圾回收

强制在远程CLR进程中进行垃圾回收
EN

Stack Overflow用户
提问于 2016-02-16 00:13:40
回答 1查看 591关注 0票数 1

我有一个简单的自定义内存分析器基于CLRMD库。它工作得很好。但是我必须总是从我的目标应用程序内部手动强制GC,以便获得准确的对象计数。有没有一种简单的方法可以在我的机器上从另一个进程触发CLR进程的GC?我的第一个想法是使用某种远程处理来告诉目标进程执行GC。但这将需要修改目标,这不是一个好主意。

EN

回答 1

Stack Overflow用户

发布于 2016-02-16 01:23:28

如果目标应用程序是您的,则可以使用自定义的CLR宿主运行它,实现ICLRGCManager,并从托管代码的“外部”调用它的“Collect方法”。

您仍然需要某种远程控制或触发器来完成此操作,但您可以导出一个C风格的过程来调用它,并从分析器中对其执行GetProcAddress操作,完全绕过托管控制(我从未在C#中尝试过这一点,只是在Delphi语言中,但它应该可以工作)。

请参阅http://community.bartdesmet.net/blogs/bart/archive/2005/07/24/2984.aspx获得一些漂亮的解释(称赞Bart De Smet)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35414037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档