C# 在没有文件系统缓存的情况下编写大量小文件的更快方法?

C# 在没有文件系统缓存的情况下编写大量小文件的更快方法?,c#,file,io,filesystems,C#,File,Io,Filesystems,我有一个应用程序,需要编写大量的文件(10到数千个),这些文件的大小都相当小(一般为4KB到64KB)。它们需要以持久的方式写入,即不需要文件系统缓存。除了我在下面做这件事的方式,你知道还有什么更快的方式吗?ANTS说这是我代码中的瓶颈(是的,我知道磁盘几乎总是瓶颈)。看到SSD上的吞吐量如此之低,我很难过,但我理解,因为文件很小。这些文件永远不会被追加 using (var fs = new FileStream( filename, System.I

我有一个应用程序,需要编写大量的文件(10到数千个),这些文件的大小都相当小(一般为4KB到64KB)。它们需要以持久的方式写入,即不需要文件系统缓存。除了我在下面做这件事的方式,你知道还有什么更快的方式吗?ANTS说这是我代码中的瓶颈(是的,我知道磁盘几乎总是瓶颈)。看到SSD上的吞吐量如此之低,我很难过,但我理解,因为文件很小。这些文件永远不会被追加

    using (var fs = new FileStream(
        filename, 
        System.IO.FileMode.OpenOrCreate, 
        FileAccess.Write, 
        FileShare.None, 
        0x1000, 
        FileOptions.WriteThrough))
    {
        fs.Write(data, 0, data.Length);
    }

文件系统缓存的全部目的是通过缓冲文件I/O来加快写入速度。你是在问我如何才能写得更快,而不使用操作系统提供的缓存来写得更快,从而故意大幅降低速度?这是毫无意义的。这似乎是一种“医生,当我这样做的时候会很痛。所以不要再那样做了。”输入情景。我明白,我在问是否有一种方法可以在我必须写的情况下更快地完成。