批量I / O性能问题

时间:2011-06-10 12:08:24

标签: performance command-line c#-3.0 batch-file io

我有一个c#.net应用程序,必须处理大量文件。此文件的处理是通过对外部工具的命令行调用完成的。这些文件中的每一个都经过4个进程,这些进程创建一个新的文件,以管道方式提供下一个进程。因此,每个原始文件都有5个文件(原始文件+ 4个进程的结果)。

我现在通过c#生成的批处理文件处理,我通过命令行执行。 I / O耗时太长。我被吸收使用RAM磁盘来加速中间结果I / O进程。但我已经阅读(在此页面中)这是陈旧的技术。

在这种情况下,有什么方法可以加快处理速度?

如果我想试试RAM磁盘,有什么好的免费软件解决方案?我使用的是Windows 7。

由于 奥斯卡

1 个答案:

答案 0 :(得分:2)

对,当Windows获得文件系统缓存时,RAM磁盘就像渡渡鸟一样。您没有包含有关程序和文件的任何相关信息,因此需要进行猜测。如果文件很大,那么文件系统缓存可能不够大,无法存储所有文件数据。典型的诊断是程序首先快速完成,但是当缓存存储太多等待写入磁盘的数据时突然花费很长时间。解决这个问题的是64位操作系统,它有很多RAM。

如果文件非常小,那么处理时间将主要由每个进程创建和初始化,然后才能提取数据。这不太可能是问题,因为这通常不会超过几十毫秒。但是,通过联系互联网服务器检查自身更新的程序并不罕见。

这留下了最可能的解释:磁盘I / O是瓶颈。它无法更快地读取第一个文件,数据必须脱离磁盘并以冰川硬盘速度运行。你需要一个更快的磁盘。固态硬盘很不错。

直到你测量我们才真正知道。

相关问题