【发布时间】:2011-01-07 21:13:32
【问题描述】:
我使用NetTcpBinding 和System.IO.Stream 对象中的Streamed TransferMode 编写了一个可以转换任意大小文件的WCF 服务。
在运行性能测试时,我发现了严重的性能问题。 然后我决定用 Buffered TransferMode 进行测试,发现性能快了两倍!
因为我的服务应该传输大文件,我不能停留在缓冲传输模式,因为服务器端和客户端的大文件的内存管理开销。
为什么 Streamed TransferMode 比 Buffered TransferMode 慢? 我可以做些什么来提高 Stremed 的性能?
【问题讨论】:
-
你具体测量了什么?消息的传输?从客户端到服务器的往返行程并返回给客户端?
-
我测量对服务器的调用并等待 Stream 返回,然后在 using 块中读取具有 64k 缓冲区的整个流。
-
@DxCK:现在你的意见是什么?应该使用哪一个?我有要传输的大数据和小数据。
标签: c# .net wcf performance streaming