1

实际上我不知道 SO 是否是正确的地方,但我不知道有这么多专业开发人员的另一个地方。

我听说,在开发分布式应用程序时,为大对象实现“通信分页”很重要,以便让 .NET 更有效地管理内存,因为 .NET 首先从内存中清除小(~80KB)对象和大对象(> ~80KB) 在内存中留下更多时间。

我的意思是......假设我有一个名为“Context”的客户端对象和一个名为“Provider”的服务器对象。客户端和服务器之间的通信使用 WCF TCP 绑定和二进制序列化实现。现在,Context 向 Server 发出请求以检索复杂对象的列表。该列表的内存大小约为 300KB 或更多,并且服务器每秒可能会为该列表的不同实例获取许多请求。因此,根据我所听到的,这意味着我需要将请求拆分为 (X / 80KB) 请求,以便处理小型 (~80KB) 对象。

在实践中,我所在公司的 CTO 希望我在 Context 和 Provider 中实现该通信分页的逻辑。意味着,在 Context 中创建循环,向 Provider 发出 X 请求,其中包含有关已接收数据的信息,并在 Provider 中创建逻辑,它将以块的形式发送列表。

对我来说这听起来很奇怪......因为无论如何,大型对象已经在服务器的内存中,并且发出更多请求会使用更多的 CPU、网络和额外的内存来管理所有的通信。

有人可以解释我如何处理这个有趣的案例,或者我可以在哪里阅读有关在 WCF 中传输大对象的信息?

谢谢

4

0 回答 0