大型计划启动缓慢

时间:2015-06-19 21:05:50

标签: windows optimization loading

以下计划

#include <stdio.h>

int main() {
    static char a[1 << 28] = {1};
    printf("%d\n", a[0]);
    return 0;
}

在Windows 7 x64上编译为此可执行文件

19/06/2015  21:57       268,519,936 a.exe

运行需要5.6秒,即使连续多次运行以确保它已缓存在内存中。

我原本希望Windows在开始时读取整个可执行文件(在这种情况下,机器能够以每秒数百兆字节的速度进行流读取)或仅在需要的部分中读取页面(在这种情况下)应该只阅读几千字节);无论哪种方式,该程序应该在几分之一秒内运行。如果你调整数组大小,运行时与可执行文件的大小成正比,所以Windows的行为就好像它正在读取整个可执行文件,但是通过一些非常慢的方法。

这种行为的原因是什么,有什么可以做的吗?

1 个答案:

答案 0 :(得分:1)

事实证明,延迟是Microsoft防病毒程序在每次运行时扫描可执行文件。禁用该文件的保护会将时间减少到47毫秒。