簡體   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