示例#1
0
        static StartupMetadata GetStartupMetadata(StartupInfo startupInfo, IPlatformTelemetryDetails platformDetails, Dictionary <string, long> timings)
        {
            var         assetType   = StartupAssetType.FromStartupInfo(startupInfo);
            StartupType startupType = StartupType.Normal;

            if (startupInfo.Restarted && !IdeApp.IsInitialRunAfterUpgrade)
            {
                startupType = StartupType.ConfigurationChange;                 // Assume a restart without upgrading was the result of a config change
            }
            else if (IdeApp.IsInitialRun)
            {
                startupType = StartupType.FirstLaunch;
            }
            else if (IdeApp.IsInitialRunAfterUpgrade)
            {
                startupType = StartupType.FirstLaunchAfterUpgrade;
            }
            else if (Debugger.IsAttached)
            {
                startupType = StartupType.DebuggerPresent;
            }

            return(new StartupMetadata {
                CorrectedStartupTime = startupTimer.ElapsedMilliseconds,
                StartupType = Convert.ToInt32(startupType),
                AssetTypeId = assetType.Id,
                AssetTypeName = assetType.Name,
                IsInitialRun = IdeApp.IsInitialRun,
                IsInitialRunAfterUpgrade = IdeApp.IsInitialRunAfterUpgrade,
                TimeSinceMachineStart = platformDetails.TimeSinceMachineStart.Seconds,
                TimeSinceLogin = platformDetails.TimeSinceLogin.Seconds,
                Timings = timings
            });
        }
示例#2
0
        public TextEditorKeyPressTimings(TextDocument document)
        {
            telemetry = IdeServices.DesktopService?.PlatformTelemetry;

            openTime = GetCurrentTime();

            if (document != null)
            {
                lengthAtStart    = document.Length;
                lineCountAtStart = document.LineCount;
            }
        }
示例#3
0
        internal void StartupCompleted(StartupInfo startupInfo, IPlatformTelemetryDetails platformTelemetryDetails)
        {
            var startupMetadata = GetStartupMetadata(startupInfo, platformTelemetryDetails);

            Counters.Startup.Inc(startupMetadata);

            // Start TTC timer
            ttcMetadata = new TimeToCodeMetadata {
                StartupTime = startupMetadata.CorrectedStartupTime
            };
            ttcMetadata.AddProperties(startupMetadata);

            LoggingService.LogDebug("TTC starting");
        }
示例#4
0
        static StartupMetadata GetStartupMetadata(StartupInfo startupInfo, IPlatformTelemetryDetails platformDetails)
        {
            var assetType = StartupAssetType.FromStartupInfo(startupInfo);

            return(new StartupMetadata {
                CorrectedStartupTime = startupTimer.ElapsedMilliseconds,
                StartupType = 0,
                AssetTypeId = assetType.Id.ToString(),
                AssetTypeName = assetType.Name,
                IsInitialRun = IdeApp.IsInitialRun,
                IsInitialRunAfterUpgrade = IdeApp.IsInitialRunAfterUpgrade,
                TimeSinceMachineStart = platformDetails.TimeSinceMachineStart.Seconds,
                TimeSinceLogin = platformDetails.TimeSinceLogin.Seconds
            });
        }
示例#5
0
        internal void StartupCompleted(StartupInfo startupInfo, IPlatformTelemetryDetails platformTelemetryDetails)
        {
            var startupMetadata = GetStartupMetadata(startupInfo, platformTelemetryDetails);

            Counters.Startup.Inc(startupMetadata);

            // Start TTC timer
            ttcMetadata = new TimeToCodeMetadata {
                StartupTime = startupMetadata.CorrectedStartupTime
            };
            ttcMetadata.AddProperties(startupMetadata);

            LoggingService.LogDebug("TTC starting");

            foreach (var kvp in sectionTimings)
            {
                LoggingService.LogInfo("Startup section {0} {1} ms", kvp.Key, kvp.Value);
            }
            LoggingService.LogInfo("Startup sections {0} ms", startupTimer.ElapsedMilliseconds);
        }