Browse Source

StartupSequenceLast "counter"

Source commit: 3a063269a5737d209ba9f64472b73473191f5848
Martin Prikryl 3 years ago
parent
commit
620c75395e

+ 2 - 0
source/WinSCP.cpp

@@ -16,6 +16,7 @@ USEFORM("forms\ScpExplorer.cpp", ScpExplorerForm);
 //---------------------------------------------------------------------------
 WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int)
 {
+  AddStartupSequence(L"T");
   int Result = 0;
   try
   {
@@ -28,6 +29,7 @@ WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int)
     CoreInitialize();
     InitializeWinHelp();
     InitializeSystemSettings();
+    AddStartupSequence(L"S");
 
     try
     {

+ 6 - 0
source/forms/CustomScpExplorer.cpp

@@ -153,6 +153,7 @@ __fastcall TCustomScpExplorerForm::TCustomScpExplorerForm(TComponent* Owner):
     FFormRestored(false),
     TForm(Owner)
 {
+  AddStartupSequence(L"F");
   FInvalid = false;
   FCurrentSide = osRemote;
   FEverShown = false;
@@ -9534,6 +9535,11 @@ void __fastcall TCustomScpExplorerForm::WMClose(TMessage & Message)
 //---------------------------------------------------------------------------
 void __fastcall TCustomScpExplorerForm::CMShowingChanged(TMessage & Message)
 {
+  if (!FShowingChanged)
+  {
+    AddStartupSequence(L"D");
+    FShowingChanged = true;
+  }
   // Ignoring implicit local-local browser of Commander, opened from DoShow
   bool NoSession = (ManagedSession == NULL);
   // This calls TCustomScpExplorerForm::DoShow

+ 1 - 0
source/forms/CustomScpExplorer.h

@@ -303,6 +303,7 @@ private:
   UnicodeString FFileColorsCurrent;
   bool FInvalid;
   std::auto_ptr<TQueueFileList> FQueueFileList;
+  bool FShowingChanged;
   bool FStarted;
   bool FUpdatingSessionTabs;
   TCalculateSizeOperation * FCalculateSizeOperation;

+ 1 - 0
source/forms/ScpCommander.cpp

@@ -409,6 +409,7 @@ void __fastcall TScpCommanderForm::DoShow()
   {
     TTerminalManager::Instance()->NewLocalSession();
   }
+  AddStartupSequence(L"O");
 }
 //---------------------------------------------------------------------------
 void __fastcall TScpCommanderForm::NeedSession(bool Startup)

+ 1 - 0
source/forms/ScpExplorer.cpp

@@ -180,6 +180,7 @@ void __fastcall TScpExplorerForm::DoShow()
   }
 
   TCustomScpExplorerForm::DoShow();
+  AddStartupSequence(L"O");
 }
 //---------------------------------------------------------------------------
 bool __fastcall TScpExplorerForm::AllowedAction(TAction * Action, TActionAllowed Allowed)

+ 1 - 0
source/windows/WinInterface.h

@@ -546,6 +546,7 @@ UnicodeString DumpCallstackFileName(int ProcessId);
 void CheckConfigurationForceSave();
 void InterfaceStarted();
 void InterfaceStartDontMeasure();
+void AddStartupSequence(const UnicodeString & Tag);
 //---------------------------------------------------------------------------
 #define HIDDEN_WINDOW_NAME L"WinSCPHiddenWindow3"
 //---------------------------------------------------------------------------

+ 19 - 0
source/windows/WinMain.cpp

@@ -416,6 +416,8 @@ static UnicodeString ColorToRGBStr(TColor Color)
 }
 //---------------------------------------------------------------------------
 TDateTime Started(Now());
+TDateTime LastStartupStartupSequence(Now());
+UnicodeString StartupSequence;
 int LifetimeRuns = -1;
 //---------------------------------------------------------------------------
 void InterfaceStartDontMeasure()
@@ -423,6 +425,13 @@ void InterfaceStartDontMeasure()
   Started = TDateTime();
 }
 //---------------------------------------------------------------------------
+void AddStartupSequence(const UnicodeString & Tag)
+{
+  int SequenceTensOfSecond = static_cast<int>(MilliSecondsBetween(Now(), LastStartupStartupSequence) / 100);
+  LastStartupStartupSequence = Now();
+  AddToList(StartupSequence, FORMAT(L"%s:%d", (Tag, SequenceTensOfSecond)), L",");
+}
+//---------------------------------------------------------------------------
 void InterfaceStarted()
 {
   if ((Started != TDateTime()) && (LifetimeRuns > 0))
@@ -438,6 +447,8 @@ void InterfaceStarted()
       Configuration->Usage->Set(L"StartupSeconds2", StartupSeconds);
     }
     Configuration->Usage->Set(L"StartupSecondsLast", StartupSeconds);
+    AddStartupSequence(L"I");
+    Configuration->Usage->Set(L"StartupSequenceLast", StartupSequence);
   }
 }
 //---------------------------------------------------------------------------
@@ -759,6 +770,7 @@ bool __fastcall ShowUpdatesIfAvailable()
 //---------------------------------------------------------------------------
 int __fastcall Execute()
 {
+  AddStartupSequence(L"E");
   DebugAssert(StoredSessions);
   TProgramParams * Params = TProgramParams::Instance();
   DebugAssert(Params);
@@ -896,6 +908,7 @@ int __fastcall Execute()
   GlyphsModule = NULL;
   NonVisualDataModule = NULL;
   TStrings * CommandParams = new TStringList;
+  AddStartupSequence(L"C");
   try
   {
     TerminalManager = TTerminalManager::Instance();
@@ -908,7 +921,9 @@ int __fastcall Execute()
     {
       GUIConfiguration->ChangeResourceModule(ResourceModule);
     }
+    AddStartupSequence(L"G");
     NonVisualDataModule = new TNonVisualDataModule(Application);
+    AddStartupSequence(L"N");
 
     // The default is 2.5s.
     // 20s is used by Office 2010 and Windows 10 Explorer.
@@ -1148,6 +1163,7 @@ int __fastcall Execute()
         try
         {
           int Flags = GetCommandLineParseUrlFlags(Params);
+          AddStartupSequence(L"B");
           GetLoginData(AutoStartSession, Params, DataList.get(), DownloadFile, NeedSession, NULL, Flags);
           // GetLoginData now Aborts when session is needed and none is selected
           if (DebugAlwaysTrue(!NeedSession || (DataList->Count > 0)))
@@ -1218,7 +1234,9 @@ int __fastcall Execute()
               {
                 // from now on, we do not support runtime interface change
                 CustomWinConfiguration->CanApplyInterfaceImmediately = false;
+                AddStartupSequence(L"A");
                 TCustomScpExplorerForm * ScpExplorer = CreateScpExplorer();
+                AddStartupSequence(L"E");
                 CustomWinConfiguration->AppliedInterface = CustomWinConfiguration->Interface;
                 try
                 {
@@ -1269,6 +1287,7 @@ int __fastcall Execute()
                     ScpExplorer->BrowseFile();
                   }
 
+                  AddStartupSequence(L"R");
                   Application->Run();
                   // to allow dialog boxes show later (like from CheckConfigurationForceSave)
                   SetAppTerminated(False);