【发布时间】:2011-12-20 22:57:57
【问题描述】:
我知道这个问题的简单答案,但我很难找到详细信息来指导我找到解决方案。
我的(C++、MFC)应用程序是从包含数 GB 和数万个文件的文件夹中运行的。开机后,最多可能需要 3 分钟才能启动,但如果您退出它并在之后的任何时间重新启动,则只需 2-3 秒即可启动。如果我从一个空文件夹结构运行我的应用程序,无论我何时运行它,它都会快速启动。
我看不到 Windows 在缓慢启动期间花费了大量系统时间并且没有给我的应用处理器时间,但它很可能会这样做。所以真正的问题是:
- 我怎么知道是不是我的应用程序特别花时间...而不是我的应用程序通常第一次访问一个文件夹,因此 Windows 做了很多耗时的额外工作我的应用永远无法控制?
- 如果我的应用程序没有任何问题,我该如何重新排列我的文件/文件夹结构,或更改 Windows 设置,以最大限度地减少 Windows 花费的时间?换句话说...我在哪里可以找到有关 Windows 在启动后第一次遇到文件夹时会做什么的信息?
我运行的是 Windows XP Professional,但无法轻易判断我拥有的主板、硬盘等是否会有所不同。
【问题讨论】:
-
文件系统缓存是一个极好的加速器。修复磁盘。
-
上述评论的预期帮助程度:10。实际帮助程度:1。原因:如果我知道“修复磁盘”是什么意思,我不会问这个问题。
-
@omatai:Hans 可能意味着获得更快的磁盘。如果您的文件夹中的文件与您所说的一样多,则速度缓慢可能是资源管理器尝试枚举所有文件。假设 Windows 在启动时没有因启动垃圾而陷入困境,Windows 通常启动得非常快。
-
等一下。 Windows 不会傻到一看到 C: 就舔嘴唇,然后去枚举整个磁盘上的所有文件。它有限制——也许它只搜索 N 个文件夹。了解这些限制是什么(什么是 N?)会很有帮助。我的应用程序不需要始终可以访问所有文件和文件夹。所以....当然,如果我能理解 Windows 正在做什么,我可以修复文件结构,并为自己节省大量时间和 $$,而这些时间和 $$ 会因“修复磁盘”而浪费。启动时启动的其他应用程序启动正常。磁盘不是问题。
标签: windows image visual-c++ mfc