繁体   English   中英

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

[英]Detecting .net application cold or hot start

我想测量我的 .net WPF 桌面应用程序的启动时间,但是启动时间会因冷启动或热启动而有很大差异。 我想分开热启动和冷启动的时间,以便建立更好的统计数据。 是否有可能以某种方式检测冷热启动?

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

编辑:

冷启动

Windows 操作系统重启后启动,物理 memory 中没有加载 clr 运行时 dll

热启动

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

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

保留应用程序的启动和停止时间。 在上一次停止时间和下一次启动时间之间定义一个时间 window,这使得您是否在进行热/冷启动变得很明显。 (注意这个 window 根本没有测量启动时间)。

例如,选择 2 秒 window。 冷启动需要重新启动,因此很明显最后一次停止将远远超过下一次启动前的 2 秒。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM