我的应用程序需要解压缩包含大量 Deflate 压缩块(以及其他类型的压缩和加密)的文件。内存分析显示,deflate 流构造函数负责在其生命周期内分配应用程序的大部分内存(54.19%,其次是 DeflateStream.read,占 12.96%,其他所有内存都低于 2%)。
换个角度来看,每个文件块通常是 4KiB(解压后),而 DeflateStream 的构造函数分配的空间略大于 32KiB(大概是用于滑动窗口)。垃圾收集器有一个现场日,因为所有这些放气流几乎不会持续任何时间(每个都在下一个到来之前消失)!再见缓存效率。
我可以继续使用 DeflateStream,但我想知道是否有更好的选择。也许是一种重置流并再次使用它的方法?