如何测量program.exe启动时间?

我想测量我的程序EXE的启动时间,这是从点击或[如果从控制台或任何其他方式开始]的时间,直到程序启动完成,它的代码可以执行所有结构设置(可能这意味着当main()中的第一个命令被执行时[?])

我想从我的代码内部对它进行编程 – 所以我认为做这件事的方法需要读取一个精确的时间来触发程序,然后从第一行代码执行时间

(抱歉我的英文不好)怎么办?

你想从包含shell(cmd.exe或Windows资源管理器)开销的点击或[enter]进行度量,还是从程序启动?

以编程方式,您只能从进程创建时测量时间,以便不包括查找,读取和映射.exe文件或任何DLL。 时间将根据虚拟内存中已经映射的内容而变化。 它将包括C RTL的初始化,但不包括其他许多。

可能最好的是GetProcessTimes 。

问题是,即使父进程不一定等待子进程初始化完成 – 它可以,使用WaitForInputIdle ,但如果您使用的标准工具,如Windows资源管理器,然后你卡住了。 我看不出有什么办法来测量shell的开销而不写自己的。