cl 生成的可执行文件第一次运行非常慢
Posted
技术标签:
【中文标题】cl 生成的可执行文件第一次运行非常慢【英文标题】:Executable generated by cl runs extremely slowly the first time 【发布时间】:2019-06-01 08:15:30 【问题描述】:当我尝试使用 VS 2019 和 VS 2017 的开发人员提示从命令行编译和运行简单的 C++ 程序时,我的可执行文件在我第一次运行时运行非常缓慢,但第二次又恢复到正常速度时间以后。即使是简单的“Hello World!”从我第一次调用 hello.exe 开始,程序需要 10-15 秒才能完成。我第一次调用可执行文件时似乎有某种开销,我不确定它是什么。什么给了?
这最初是在 VS 2017 中发生在我身上的,所以我认为这可能是 VS 2017 的错误,我安装了 VS 2019。但是,问题仍然存在。
举个准确的例子,我制作了一个名为“test.cpp”的文件,内容如下:
#include <iostream>
#include <ctime>
int main(int argc, char *argv[])
clock_t t;
t = clock();
std::cout << "Why is this happening?" << "\n";
std::cout << clock() - t << "\n";
return 0;
然后在 VS Developer Prompt 中运行“cl /EHsc test.cpp”,这很快就完成了。但是,当我运行“test.exe”时,输出显示大约需要 10-15 秒。当然时钟输出为0;主函数内部没有发生什么奇怪的事情。另外,我找不到遇到同样问题的人。
【问题讨论】:
您是否启用了任何防病毒软件? 某些具有沙盒功能的 AV(如 aVast)第一次执行应用程序需要很长时间,尤其是因为您的程序是 AV 的新手。 【参考方案1】:您是否启用了防病毒软件?如果是,请尝试使用防病毒软件
【讨论】:
以上是关于cl 生成的可执行文件第一次运行非常慢的主要内容,如果未能解决你的问题,请参考以下文章
MS C++(CL)编译的可执行文件在 Windows 2000 上不起作用 [重复]
写了一个程序可以编译c语言,怎么自动再链接然后执行生成的可执行文件?
如何在 azure app 服务中使用 cl.exe 编译 c++ 代码并生成可执行文件