Windows XP在C+;中启动时读取文本文件的速度较慢+;;预取? 我有一个C++编写的应用程序,Visual Studio 2005专门运行在WindowsXP中。 启动应用程序时,它会读取大量(>20000)包含XML的文本文件(.nfo)。 每个文件有800字节

Windows XP在C+;中启动时读取文本文件的速度较慢+;;预取? 我有一个C++编写的应用程序,Visual Studio 2005专门运行在WindowsXP中。 启动应用程序时,它会读取大量(>20000)包含XML的文本文件(.nfo)。 每个文件有800字节,c++,file-io,filesystems,windows-xp,prefetch,C++,File Io,Filesystems,Windows Xp,Prefetch,当应用程序在冷重启后启动时,读取文件需要10分钟。 然而,如果我关闭它并重新启动它,只需要10秒就可以读取它们。如果我进行热重启,也需要10秒钟。 如果使用cacheset实用程序清除缓存,读取文件也需要10秒钟。 如果我冷启动计算机,2小时内不触摸计算机,启动应用程序,启动仍然需要10分钟 我使用标准库(std)的基本功能打开/读取/关闭文件 我相信问题不是直接来自应用程序的实现,而是来自Windows XP 我目前的重点是Windows XP的预取程序。我的应用程序在预回迁目录中有一个.pf

当应用程序在冷重启后启动时,读取文件需要10分钟。 然而,如果我关闭它并重新启动它,只需要10秒就可以读取它们。如果我进行热重启,也需要10秒钟。 如果使用cacheset实用程序清除缓存,读取文件也需要10秒钟。 如果我冷启动计算机,2小时内不触摸计算机,启动应用程序,启动仍然需要10分钟

我使用标准库(std)的基本功能打开/读取/关闭文件

我相信问题不是直接来自应用程序的实现,而是来自Windows XP

我目前的重点是Windows XP的预取程序。我的应用程序在预回迁目录中有一个.pf文件。 但是,my.nfo文本文件都不在要预回迁的文件列表中。 例如,在与Internet Explorer关联的预回迁文件中,可以看到其临时文件(如图片)列在预回迁文件中。 我相信如果我能强迫我的档案出现在名单上;它们的打开/读取操作会更快,因为Windows已经知道它们在哪里 定位在磁盘上

为什么我的文件不与我的DLL一起位于.pf预回迁文件中? 文件出现在预回迁文件中的条件是什么

这有意义吗

我还想知道是否有办法强制Windows XP预取完整目录或文件列表

这是一种已经商业化的产品,与计算机一起销售。因此,我们完全有权调整操作系统。 然而,我们还没有计划对我们的申请进行极端修改


关于

IMO,如果您在启动时读取了超过20000个文件,那么应用程序肯定有问题。
我无法理解为什么有人宁愿调整操作系统而不愿实际修复他们的应用程序

如果超过20000个文件需要10分钟,您将看到20000个文件,这将需要几分钟的时间

提高加载时间的最佳方法是将文件捆绑在一起,然后一次读取所有文件。
为了获得最大的效率,请将它们粘贴到压缩存档中。

或者使用SSD。

IMO,如果您在启动时读取了超过20000个文件,这肯定是应用程序的问题。
我无法理解为什么有人宁愿调整操作系统而不愿实际修复他们的应用程序

如果超过20000个文件需要10分钟,您将看到20000个文件,这将需要几分钟的时间

提高加载时间的最佳方法是将文件捆绑在一起,然后一次读取所有文件。
为了获得最大的效率,请将它们粘贴到压缩存档中。

或者使用SSD。

应用程序是如何启动的?您是手动运行它,还是它是启动组、注册表等的一部分?我不确定是哪个版本的操作系统,但有些“沙盒”启动程序可以帮助缩短启动时间,因为很多供应商希望他们的程序同时启动。通常用户手动启动应用程序!我们正在进行自动启动,但我看不出有什么帮助。std的基本功能是指ifstream对象?普通C函数在处理大量文本时应该有更好的性能。不,如果我没记错的话,自动启动实际上会损害它。我似乎找不到我在哪里找到那篇文章的。某些版本的windows set会以较低的优先级自动启动程序,以使windows UI响应更快。我不相信它适用于手动启动,所以忽略我的评论。这里不是关于std函数的处理能力,因为在第二次启动时;启动文件需要10秒而不是10分钟!我相信更多的是关于硬盘缓存。应用程序是如何启动的?您是手动运行它,还是它是启动组、注册表等的一部分?我不确定是哪个版本的操作系统,但有些“沙盒”启动程序可以帮助缩短启动时间,因为很多供应商希望他们的程序同时启动。通常用户手动启动应用程序!我们正在进行自动启动,但我看不出有什么帮助。std的基本功能是指ifstream对象?普通C函数在处理大量文本时应该有更好的性能。不,如果我没记错的话,自动启动实际上会损害它。我似乎找不到我在哪里找到那篇文章的。某些版本的windows set会以较低的优先级自动启动程序,以使windows UI响应更快。我不相信它适用于手动启动,所以忽略我的评论。这里不是关于std函数的处理能力,因为在第二次启动时;启动文件需要10秒而不是10分钟!我相信更多的是硬盘缓存。。