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

标签 c windows performance winapi performance-testing

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

我想以编程方式从 在我的代码中 - 所以我想办法做到这一点 需要读取准确的发射时间 程序然后从中减去这次 第一行代码执行时间

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

最佳答案

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

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

可能您能做的最好的事情是 GetProcessTimes .

问题是,即使是父进程也不一定要等待子进程初始化完成——它可以使用 WaitForInputIdle,但如果您使用的是 Windows 资源管理器等标准工具,那么您坚持下去。如果不自己编写,我看不出有什么方法可以测量 shell 开销。

关于c - 如何测量 program.exe 启动时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16031122/

相关文章:

c - 如何通过一次在数组中取出 2 个项目来将权重添加到 sack 中?

c - C 中用于有符号整数结构 num { int a :3; int b:2; int c:1; } 的位字段

c++ - 从 32 位应用程序访问 64 位注册表

c++ - boost directory_iterator是否在Windows上按字母顺序访问文件和文件夹

python - 我可以加快这个基本的线性代数代码吗?

c++ - SDL_SaveBMP 倒置保存图片

c - FreeType:根据大写高度调整字体大小?

windows - 不同DPI、高度计算的CComboBoxEx问题

java - 我如何在 Java 中一次更改多个引用?

java - 截断表表最优解