我想测量我的.net WPF桌面应用程序的启动时间,但是启动时间在很大程度上取决于它是冷启动还是热启动。我想把热和冷的时间分开,这样我就可以建立更好的统计数据。是否有可能以某种方式检测到冷热的启动?
.net框架4.8没有ngen,没有MultiCoreJit配置文件优化。应用程序与MSI安装程序一起安装。
编辑:
冷启动
重新启动Windows OS之后,物理内存中没有加载clr运行时dll
热启动
应用程序已关闭,并立即重新启动。clr运行时和一些应用程序dll仍然加载在OS内存中,因此不会发生IO,只会将地址映射到进程地址空间。
这就是我如何向自己解释为什么启动时间不同。如果我错了,请纠正我。
发布于 2021-12-21 20:58:45
持久化应用程序的开始和停止时间。定义上一次停止时间和下一次开始时间之间的时间窗口,这样可以清楚地看到您是否正在进行热/冷启动。(请注意,此窗口根本没有测量启动时间)。
例如,选择一个2秒的窗口。冷启动需要重新启动,因此很明显,最后一站将远远超过下一次启动之前的2秒。
您可以通过脚本保存这些值,或者将应用程序更改为在任何其他活动之前尽早记录它的启动时间,以及在应用程序关闭时它的停止时间越晚越好。
https://stackoverflow.com/questions/70437237
复制相似问题