WCF,GC和内存管理

时间:2013-02-20 20:31:05

标签: .net wcf memory-management serialization

是否可以在WCF中实现“自定义”缓存以提高内存使用率?或者也许WCF内置支持它?或者这是不可能的,我不了解事情是如何运作的。

例如,我在服务器内存缓存中有一个大对象的集合(在二进制序列化后,每个项目约50项/约7KB)。因此,当它位于内存中时没有问题,每个对象都很小并且位于堆中。但是当我通过WCF发送该集合时,该集合被序列化,其大小约为400KB。由于字节数组现在是大对象,因此它位于大对象堆中。完全相同的集合通过WCF非常频繁地发送,这通过为每个请求重新创建大量字节来打击内存。目前我们通过“通信分页”解决它(将集合拆分为小部分并发出多个请求来检索所有项目)。

是否可以预先序列化集合,然后通过WCF发送相同的字节数组?我认为,如果它将是字节数组的相同实例,那么即使它将位于LOH中,每个集合将只有一个数组实例,并且每次请求都会通过重新创建大数组来释放内存。

如果可能,我应该从哪里开始以及我需要阅读以实现此目的?

0 个答案:

没有答案