将文件写入磁盘时速度慢(Delphi XE5)

时间:2015-07-20 11:20:19

标签: delphi

我正在使用从数据库MySQL写入磁盘的大文件。我的文件可能达到每个文件GB。我担心的是,我试图以多种方式编写文件但结果是相同的(需要更长的时间才能完成)。

生成0.2 GB或200,000 KB的文件需要大约2个半小时才能完成。我试图通过使用TSQLQuery或TClientdataset来获取数据,但它们提供了相同的结果(完成时间)来编写文件。

同时,对于编写过程,我使用TFileStream和Windows.API类来编写文件,它们之间没有区别。我的期望是它会产生一些差异,因为它们以不同的方式处理。

我也尝试过之前发布过的方法 (Buffered files (for faster disk access)

但仍然没有提升表现。

这种情况仅发生在大文件中。当我尝试生成一小部分文件时,速度非常快。

我在D7中运行了相同的代码。写作过程只需几分钟即可完成。我使用XE5的原因是因为我想避免使用BDE的组件。

还有其他方法可以提高将大文件写入磁盘的性能吗?

1 个答案:

答案 0 :(得分:1)

在clientdataset上尝试disablecontrol,在循环之前,它将大大提高clientdataset滚动记录的速度。