我想知道为什么与缓冲模式相比,流模式下的WCF真的很慢。
基本上,我正在从服务器(数据库访问)中读取大量数据,然后通过WCF将大量数据传输到其他客户端。
我通过比较两种不同的传输模式进行了一些测试和基准测试。
我创建了2个端点。第一个正在使用transferMode="Buffered"
,另一个正在使用transferMode="StreamedResponse"
。
通过从SQL服务器(虚拟表)加载相同的100万行,结果如下:
流式传输就像在Q/A中一样。基本上,数据存储在IEnumerable<T>
中,然后流到使用它的客户端。
如果需要,我可以提供WCF app.config
文件。
顺便说一句,我已经看过类似的其他问题:
WCF NetTcpBinding Buffered vs Streamed performance problems
但是他们并没有给出适当的答案。