1

我想测量我的程序 exe 启动时间,它是从单击或 [enter](如果从控制台或任何其他方式启动)到程序启动完成并且其代码可以在所有结构设置下执行的时间(可能这意味着何时执行 main() 中的第一条命令 [?])

我想从我的代码内部以编程方式测量它 - 所以我认为一种方法需要读取触发程序的确切时间,然后从第一行代码执行的时间中减去这个时间

(对不起我的英语不好)怎么办?

4

1 回答 1

2

您想从单击或 [enter](包括 shell(cmd.exe 或 Windows Explorer)开销)还是从程序启动来衡量?

以编程方式,您只能从进程创建开始测量时间,因此不包括查找、读取和映射 .exe 文件或任何 DLL。时间将根据虚拟内存中已映射的内容而有所不同。它将包括 C RTL 的初始化,但仅此而已。

可能你能做的最好的是GetProcessTimes

问题是,即使是父进程也不一定要等待子进程初始化完成——它可以使用WaitForInputIdle. 如果不自己编写,我看不到任何方法来测量外壳开销。

于 2013-04-16T08:00:15.953 回答