Browse Source

StartupSeconds* counters

Source commit: 7a3befd0856d045a8ff867ffb825c89e96f55cc9
Martin Prikryl 5 years ago
parent
commit
79b51c10ed

+ 13 - 3
source/core/Usage.cpp

@@ -213,27 +213,37 @@ void __fastcall TUsage::ResetLastExceptions()
   ResetValue(LastUpdateExceptionCounter);
 }
 //---------------------------------------------------------------------------
-void __fastcall TUsage::Inc(const UnicodeString & Key, int Increment)
+int __fastcall TUsage::Inc(const UnicodeString & Key, int Increment)
 {
+  int Result;
   if (Collect)
   {
     TGuard Guard(FCriticalSection);
     Inc(Key, FPeriodCounters, Increment);
-    Inc(Key, FLifetimeCounters, Increment);
+    Result = Inc(Key, FLifetimeCounters, Increment);
   }
+  else
+  {
+    Result = -1;
+  }
+  return Result;
 }
 //---------------------------------------------------------------------------
-void __fastcall TUsage::Inc(const UnicodeString & Key, TCounters & Counters, int Increment)
+int __fastcall TUsage::Inc(const UnicodeString & Key, TCounters & Counters, int Increment)
 {
+  int Result;
   TCounters::iterator i = Counters.find(Key);
   if (i != Counters.end())
   {
     i->second += Increment;
+    Result = i->second;
   }
   else
   {
     Counters.insert(std::make_pair(Key, Increment));
+    Result = Increment;
   }
+  return Result;
 }
 //---------------------------------------------------------------------------
 void __fastcall TUsage::SetMax(const UnicodeString & Key, int Value)

+ 2 - 2
source/core/Usage.h

@@ -16,7 +16,7 @@ public:
   void __fastcall Set(const UnicodeString & Key, const UnicodeString & Value);
   void __fastcall Set(const UnicodeString & Key, int Value);
   void __fastcall Set(const UnicodeString & Key, bool Value);
-  void __fastcall Inc(const UnicodeString & Key, int Increment = 1);
+  int __fastcall Inc(const UnicodeString & Key, int Increment = 1);
   void __fastcall SetMax(const UnicodeString & Key, int Value);
   UnicodeString __fastcall Get(const UnicodeString & Key);
 
@@ -47,7 +47,7 @@ private:
     const UnicodeString & Name, TCounters & Counters);
   void __fastcall Save(THierarchicalStorage * Storage,
     const UnicodeString & Name, const TCounters & Counters) const;
-  void __fastcall Inc(const UnicodeString & Key, TCounters & Counters, int Increment);
+  int __fastcall Inc(const UnicodeString & Key, TCounters & Counters, int Increment);
   void __fastcall SetMax(const UnicodeString & Key, int Value, TCounters & Counters);
   void __fastcall Serialize(
     UnicodeString& List, const UnicodeString & Name, const TCounters & Counters,

+ 6 - 0
source/forms/CustomScpExplorer.cpp

@@ -4681,6 +4681,12 @@ void __fastcall TCustomScpExplorerForm::Idle()
           RemoteDirView->ReloadDirectory();
         }
       }
+
+      if (!FStarted)
+      {
+        FStarted = true;
+        InterfaceStarted();
+      }
     }
   }
 

+ 1 - 0
source/forms/CustomScpExplorer.h

@@ -292,6 +292,7 @@ private:
   UnicodeString FFileColorsCurrent;
   bool FInvalid;
   std::auto_ptr<TQueueFileList> FQueueFileList;
+  bool FStarted;
 
   bool __fastcall GetEnableFocusedOperation(TOperationSide Side, int FilesOnly);
   bool __fastcall GetEnableSelectedOperation(TOperationSide Side, int FilesOnly);

+ 1 - 0
source/windows/WinInterface.h

@@ -532,6 +532,7 @@ UnicodeString DumpCallstackEventName(int ProcessId);
 UnicodeString DumpCallstackFileName(int ProcessId);
 
 void CheckConfigurationForceSave();
+void InterfaceStarted();
 //---------------------------------------------------------------------------
 #define HIDDEN_WINDOW_NAME L"WinSCPHiddenWindow3"
 //---------------------------------------------------------------------------

+ 22 - 1
source/windows/WinMain.cpp

@@ -405,9 +405,30 @@ static UnicodeString ColorToRGBStr(TColor Color)
   return Result;
 }
 //---------------------------------------------------------------------------
+TDateTime Started(Now());
+int LifetimeRuns = -1;
+//---------------------------------------------------------------------------
+void InterfaceStarted()
+{
+  // deliberate downcast
+  int StartupSeconds = static_cast<int>(SecondsBetween(Now(), Started));
+  if (LifetimeRuns > 0)
+  {
+    if (LifetimeRuns == 1)
+    {
+      Configuration->Usage->Set(L"StartupSeconds1", StartupSeconds);
+    }
+    else if (LifetimeRuns == 2)
+    {
+      Configuration->Usage->Set(L"StartupSeconds2", StartupSeconds);
+    }
+    Configuration->Usage->Set(L"StartupSecondsLast", StartupSeconds);
+  }
+}
+//---------------------------------------------------------------------------
 void __fastcall UpdateStaticUsage()
 {
-  Configuration->Usage->Inc(L"Runs");
+  LifetimeRuns = Configuration->Usage->Inc(L"Runs");
 
   Configuration->Usage->UpdateCurrentVersion();