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