And*_*ndy 2 .net c# memorystream stream
如果数据很大且进程是32位,那么当使用.Net MemoryStream时,我遇到内存不足异常的问题.
我相信System.IO.Packaging API在数据量增加时从内存静默切换到文件支持的存储,从表面上看,似乎可以实现完全相同的MemoryStream的子类事情.
有谁知道这样的实现?我很确定框架本身没有任何东西.
程序员努力避免使用文件.在Windows中,内存和文件之间的差异非常小.用于MemoryStream的任何内存实际上都需要一个文件.存储由页面文件c:\ pagefile.sys支持.反之亦然,您使用的任何文件都由内存支持.文件数据由文件系统缓存缓存在RAM中.因此,如果机器有足够的RAM,那么如果使用FileStream,实际上只能从/向内存读写.并获得你期望使用内存的性能.它完全免费,您不必编写任何代码来启用此功能,也不必管理它.
如果机器没有足够的RAM,那么它会以同样的方式恶化.当您使用MemoryStream时,页面文件开始被废弃,您将被磁盘放慢速度.当您使用文件时,数据将不适合文件系统缓存,您将被磁盘放慢速度.
你当然会得到使用文件的好处,你不会再耗尽内存了.请改用FileStream.
| 归档时间: |
|
| 查看次数: |
8337 次 |
| 最近记录: |