繁体   English   中英

大型程序启动缓慢

[英]Slow start-up of large programs

以下程序

#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的行为就像是在读取整个可执行文件一样,但是速度很慢。

这种行为的原因是什么,对此有什么可以解决的吗?

事实证明,延迟是Microsoft防病毒程序在每次运行可执行文件时都会对其进行扫描。 在该文件上禁用保护可将时间缩短为47毫秒。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM