1

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

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

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

如果可能的话,我应该从哪里开始以及我需要阅读什么来实现这一点?

4

0 回答 0