在写入新文件时,我可以避免在C#中分配内存吗?

在写入新文件时,我可以避免在C#中分配内存吗?,c#,.net,buffer,filestream,C#,.net,Buffer,Filestream,我的应用程序写入许多文件,目前我们为每个文件使用一个新的FileStream创建一个新的BinaryWriter 问题是,每个FileStream在第一次写入时都会创建一个新的内部缓冲区(请参阅) 如果可以的话,我会集中和重用缓冲区以避免内存流失,但我看不到任何方法可以做到这一点。我也看不到通过将FileStream重新用于另一个文件来重用它的任何方法 有没有办法做到这一点?我们使用C#/.Net 4.0是为了它的价值。您是否真的发现了性能问题?是否使用非默认缓冲区大小?默认值为4Kb,因此需要

我的应用程序写入许多文件,目前我们为每个文件使用一个新的
FileStream
创建一个新的
BinaryWriter

问题是,每个
FileStream
在第一次写入时都会创建一个新的内部缓冲区(请参阅)

如果可以的话,我会集中和重用缓冲区以避免内存流失,但我看不到任何方法可以做到这一点。我也看不到通过将
FileStream
重新用于另一个文件来重用它的任何方法


有没有办法做到这一点?我们使用C#/.Net 4.0是为了它的价值。

您是否真的发现了性能问题?是否使用非默认缓冲区大小?默认值为4Kb,因此需要大量打开的文件流才能看到对内存的影响。我们使用128K缓冲区大小,可能是因为有人认为这样可以提供更好的性能。我将把它放到4K并重新归档。