我想测量我的程序 exe 启动时间,它是从单击或 [enter](如果从控制台或任何其他方式启动)到程序启动完成并且其代码可以在所有结构设置下执行的时间(可能这意味着何时执行 main() 中的第一条命令 [?])
我想从我的代码内部以编程方式测量它 - 所以我认为一种方法需要读取触发程序的确切时间,然后从第一行代码执行的时间中减去这个时间
(对不起我的英语不好)怎么办?
我想测量我的程序 exe 启动时间,它是从单击或 [enter](如果从控制台或任何其他方式启动)到程序启动完成并且其代码可以在所有结构设置下执行的时间(可能这意味着何时执行 main() 中的第一条命令 [?])
我想从我的代码内部以编程方式测量它 - 所以我认为一种方法需要读取触发程序的确切时间,然后从第一行代码执行的时间中减去这个时间
(对不起我的英语不好)怎么办?
您想从单击或 [enter](包括 shell(cmd.exe 或 Windows Explorer)开销)还是从程序启动来衡量?
以编程方式,您只能从进程创建开始测量时间,因此不包括查找、读取和映射 .exe 文件或任何 DLL。时间将根据虚拟内存中已映射的内容而有所不同。它将包括 C RTL 的初始化,但仅此而已。
可能你能做的最好的是GetProcessTimes。
问题是,即使是父进程也不一定要等待子进程初始化完成——它可以使用WaitForInputIdle
. 如果不自己编写,我看不到任何方法来测量外壳开销。