如何衡量program.exe的启动时间?

时间:2013-04-16 07:25:54

标签: c windows performance winapi performance-testing

我想测量我的程序exe启动时间吧 是从点击或[输入]的那一刻起的时间 如果从控制台或任何其他方式启动,直到 程序启动完成的那一刻 它的代码可以在所有结构设置的情况下执行 (可能它意味着在main()中的第一个命令 执行[?])

我想从程序上测量它 在我的代码中 - 所以我认为有办法做到这一点 需要阅读确切的射击时间 程序然后减去这个时间 第一行代码执行的时间

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

1 个答案:

答案 0 :(得分:2)

您想要从单击或[回车]进行衡量,包括shell(cmd.exe或Windows资源管理器)开销,还是程序启动?

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

你可以做的最好的事情是GetProcessTimes

问题是即使父进程也不一定等待子进程初始化完成 - 它可以使用WaitForInputIdle,但是如果你使用的是标准工具,比如Windows资源管理器那么你就坚持了。我不知道如何在不编写自己的情况下测量shell开销。