Streamed的话,lz的做法需要先变成MemoryStream,其实也还是一样的,个人以为Streamed可能更适合大IO操作。
控制下并发访问量,客户端稍微延迟点是否能够接受?
如果客户端性能不能降低,应该考虑用服务负载,用服务器集群。搭建多个WCF服务器来分摊查询压力。
比如:NLB集群

解决方案 »

  1.   

    用流无法降低内存的使用率。只能提供传输的效率吧。。现在是用循环获取数据,单个用户访问能控制在20M以内。这样内存问题就解决了,因为我这里的生产环境是局域网,所以传输的问题并不明显。
    这里占用内存注意是序列化的时候用的比较多,而我直接用的WCF的序列化,所以无法及时释放资源。不知道有无解决办法。不怎么想自己写序列化啊
      

  2.   

    按理说转为文件流应该是可以的(不过可能会造成IO堵塞),占用相当于缓存大小的内存就可以,在内存里,也可以考虑用gzip之类的做压缩。另外lz用工具查查内存使用情况,感觉可能是没有及时释放内存造成的。
      

  3.   

    另外,只要没有出现OutOfMemory也没关系,GC没有立即回收也是正常的。
      

  4.   

    1 ProtoBuf
    2 MessagePack替代.Net自带的Xml序列化、反序列化参考FortuneBase
    参考地址www.cnblogs.com/mail-ricklee