我的应用程序对其服务器进行了许多快速Web服务调用。每次调用它都会序列化一个对象,并将其作为参数传递给Web服务调用。通常,该对象序列化为非常小的东西...比如说5KB或更少......在这种情况下,我宁愿只序列化到MemoryStream然后从该MemoryStream发送字节。但有时候这个对象序列化为非常庞大的东西...比如说50MB(50,000KB)...在这种情况下,序列化到MemoryStream会严重损害大对象堆......因此,最好将其序列化为FileStream。
我觉得如果FileStream有足够大的缓冲区大小,那么我应该能够写入它,寻找回头,然后从中读取,并且永远不会从内存缓冲区中取出..这样我的线程应该(理论上)执行与内存大致相同的速度,直到缓冲区大小。真?
(是的,我会做一些测量......但是我很容易错过它会表现得不同的情况......或者可能否定结果的相关问题......这里的集体智慧常常会告诉我谢谢!!)
是否有可靠的高性能方法来获得文件支持的内存流,只有在需要增大文件时才使用该文件? (我希望答案是“是的,只需使用FileStream,将缓冲区大小设置为您想要的内存流大小。”)