0

.Net 的 MemoryStream 有一个大字节数组。当它填满时,会创建一个大小为两倍的新的。这会导致大量副本,它可能会使堆碎片化,在所有内存用于未找到足够大的块之前失败,并对大型对象堆施加压力。

解决方案是使用几个但更小的数组,就像 StringBuilder 一样。对于框架或其他地方的 Stream 子类,这种技术是否有(半)标准实现?我知道http://www.codeproject.com/Articles/348590/A-replacement-for-MemoryStream,但认为这可能已经在框架的某个地方完成了。

4

0 回答 0