我创建了一个在exe进程中托管的wcf服务,并通过类库实例化客户端,该类调用服务。类库是用于excel 2007的com插件,因为wcf服务的原因是我们在检索大量数据时不会使用excel进程内存。
我通过使用WSHttpBinding实现ClientBase来创建wcf服务。我目前正在测试裸骨项目,唯一的功能是从wcf服务返回一条消息。
我的问题是关于创建wcf客户端的内存使用情况以及为什么它一旦处理就不会被释放。我使用地址空间监视器来监视内存使用情况并创建绑定,客户端使用大约70mb的已提交内存。
有关wcf内存使用情况或GC for com dlls的任何信息都很有用
由于
答案 0 :(得分:0)
Heres写了一篇文章:
此外,下面是一个类似于你的帖子,之前发布过。伊戈尔泽瓦卡回答说。希望它可以增加更多的知识。
this.Dispose() doesn't release memory used by Form after closing it.
答案 1 :(得分:0)
与.net中的垃圾收集方式相同。它在各种各样的地方都有优势,但在某些地方似乎是一种阻碍。您可能会发现 - 并且我有点夸张 - 当您处理1个表单并创建新实例时,它会重用该内存空间。虽然我对此表示怀疑。
无论如何...... .net中的垃圾收集很有意思。
它最终会被清理干净......只是在不确定的时间内。
我相信有一个强制垃圾收集的命令
Best Practice for Forcing Garbage Collection in C#
当然它有点像打斗俱乐部 - 不要谈论山雀,如果你找到它,你可能会希望你没有
GC.Collect();
IIRC
还有一个过载需要一个bool。当你打电话给它时,它也会通过所有部分强制它们。有几种易于谷歌的配置模式。 Juval Lowry在他的组件书中深入探讨了这些内容。