improve:启动计时

This commit is contained in:
2026-04-30 15:26:47 +08:00
parent f1f75ff015
commit 49b22dc184
+7 -3
View File
@@ -86,6 +86,8 @@ namespace Ink_Canvas
private static SplashScreen _splashScreen; private static SplashScreen _splashScreen;
private static bool _isSplashScreenShown = false; private static bool _isSplashScreenShown = false;
private static System.Resources.ResourceSet _pendingLocalizedResourceSet; private static System.Resources.ResourceSet _pendingLocalizedResourceSet;
private static readonly Stopwatch startupStopwatch = new Stopwatch();
private static readonly Stopwatch splashStopwatch = new Stopwatch();
[DllImport("shell32.dll", CharSet = CharSet.Unicode, SetLastError = true)] [DllImport("shell32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
private static extern int SetCurrentProcessExplicitAppUserModelID(string appId); private static extern int SetCurrentProcessExplicitAppUserModelID(string appId);
@@ -544,6 +546,7 @@ namespace Ink_Canvas
_splashScreen.Show(); _splashScreen.Show();
_isSplashScreenShown = true; _isSplashScreenShown = true;
splashScreenStartTime = DateTime.Now; splashScreenStartTime = DateTime.Now;
splashStopwatch.Restart();
LogHelper.WriteLogToFile("启动画面已显示"); LogHelper.WriteLogToFile("启动画面已显示");
} }
catch (Exception ex) catch (Exception ex)
@@ -763,6 +766,7 @@ namespace Ink_Canvas
{ {
appStartTime = DateTime.Now; appStartTime = DateTime.Now;
appStartupStartTime = DateTime.Now; appStartupStartTime = DateTime.Now;
startupStopwatch.Restart();
TryApplyPreferredLanguageFromSettings(); TryApplyPreferredLanguageFromSettings();
@@ -1155,15 +1159,15 @@ namespace Ink_Canvas
{ {
isStartupComplete = true; isStartupComplete = true;
startupCompleteHeartbeat = DateTime.Now; startupCompleteHeartbeat = DateTime.Now;
if (_isSplashScreenShown && splashScreenStartTime != DateTime.MinValue) if (_isSplashScreenShown && splashStopwatch.IsRunning)
{ {
LogHelper.WriteLogToFile($"启动完成心跳已记录,启动画面显示时长: {(startupCompleteHeartbeat - splashScreenStartTime).TotalSeconds:F2}秒"); LogHelper.WriteLogToFile($"启动完成心跳已记录,启动画面显示时长: {splashStopwatch.Elapsed.TotalSeconds:F2}秒");
} }
else else
{ {
LogHelper.WriteLogToFile($"启动完成心跳已记录"); LogHelper.WriteLogToFile($"启动完成心跳已记录");
} }
LogHelper.WriteLogToFile($"启动时长: {(startupCompleteHeartbeat - appStartupStartTime).TotalSeconds:F2}秒"); LogHelper.WriteLogToFile($"启动时长: {startupStopwatch.Elapsed.TotalSeconds:F2}秒");
if (_isSplashScreenShown) if (_isSplashScreenShown)
{ {