检测.net应用程序冷启动或热启动



我想测量我的.net WPF桌面应用程序的启动时间,但启动时间会有很大的变化,这取决于它是冷启动还是热启动。我想把热启动和冷启动的时间分开,这样我就可以建立更好的统计数据。有可能以某种方式检测热启动和冷启动吗?

.net framework 4.8,没有ngen,没有MultiCoreJit配置文件优化。应用程序是使用MSI安装程序安装的。

编辑:

冷启动

Windows操作系统重新启动后启动,物理内存中未加载clr运行时dll

热启动

应用程序已关闭并立即重新启动。clr运行时和最终的一些应用程序dll仍然加载在操作系统内存中,因此不会发生IO,只有到进程地址空间的地址映射。

这就是我向自己解释为什么启动时间不同的原因。如果我错了,请纠正我。

持久化应用程序的启动和停止时间。定义上一次停止时间和下一次开始时间之间的时间窗口,以明确您是否在进行热启动/冷启动。(请注意,此窗口根本没有测量启动时间(。

例如,拾取一个2秒的窗口。冷启动需要重新启动,所以很明显,最后一次停止将远远超过下一次启动前的2秒。

您可以通过脚本保持这些值,或者更改应用程序,以便在任何其他活动之前尽早记录其开始时间,并在应用程序关闭时尽可能晚地记录其停止时间。

最新更新