diff options
| author | Bond-009 <bond.009@outlook.com> | 2022-12-14 22:03:26 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-14 22:03:26 +0100 |
| commit | a455e580be2e650fafb8e768c4978d9ff83ca3c4 (patch) | |
| tree | 0b345b7bdfaaa7851c6ea51c29a312ef639a6b4a | |
| parent | 3462676a8f288358d65484ce2022b66ef9da5ee9 (diff) | |
Use static methods StopWatch where it makes sense (#8898)
| -rw-r--r-- | Jellyfin.Server/Middleware/ResponseTimeMiddleware.cs | 14 | ||||
| -rw-r--r-- | Jellyfin.Server/Program.cs | 7 |
2 files changed, 9 insertions, 12 deletions
diff --git a/Jellyfin.Server/Middleware/ResponseTimeMiddleware.cs b/Jellyfin.Server/Middleware/ResponseTimeMiddleware.cs index 65b64da4f..531897cd4 100644 --- a/Jellyfin.Server/Middleware/ResponseTimeMiddleware.cs +++ b/Jellyfin.Server/Middleware/ResponseTimeMiddleware.cs @@ -40,25 +40,25 @@ namespace Jellyfin.Server.Middleware /// <returns>Task.</returns> public async Task Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager) { - var watch = new Stopwatch(); - watch.Start(); + var startTimestamp = Stopwatch.GetTimestamp(); + var enableWarning = serverConfigurationManager.Configuration.EnableSlowResponseWarning; var warningThreshold = serverConfigurationManager.Configuration.SlowResponseThresholdMs; context.Response.OnStarting(() => { - watch.Stop(); - var responseTimeForCompleteRequest = watch.ElapsedMilliseconds; - if (enableWarning && responseTimeForCompleteRequest > warningThreshold && _logger.IsEnabled(LogLevel.Debug)) + var responseTime = Stopwatch.GetElapsedTime(startTimestamp); + var responseTimeMs = responseTime.TotalMilliseconds; + if (enableWarning && responseTimeMs > warningThreshold && _logger.IsEnabled(LogLevel.Debug)) { _logger.LogDebug( "Slow HTTP Response from {Url} to {RemoteIp} in {Elapsed:g} with Status Code {StatusCode}", context.Request.GetDisplayUrl(), context.GetNormalizedRemoteIp(), - watch.Elapsed, + responseTime, context.Response.StatusCode); } - context.Response.Headers[ResponseHeaderResponseTime] = responseTimeForCompleteRequest.ToString(CultureInfo.InvariantCulture); + context.Response.Headers[ResponseHeaderResponseTime] = responseTimeMs.ToString(CultureInfo.InvariantCulture); return Task.CompletedTask; }); diff --git a/Jellyfin.Server/Program.cs b/Jellyfin.Server/Program.cs index 46f45b9ad..7052f4d2b 100644 --- a/Jellyfin.Server/Program.cs +++ b/Jellyfin.Server/Program.cs @@ -94,8 +94,7 @@ namespace Jellyfin.Server private static async Task StartApp(StartupOptions options) { - var stopWatch = new Stopwatch(); - stopWatch.Start(); + var startTimestamp = Stopwatch.GetTimestamp(); // Log all uncaught exceptions to std error static void UnhandledExceptionToConsole(object sender, UnhandledExceptionEventArgs e) => @@ -217,9 +216,7 @@ namespace Jellyfin.Server await appHost.RunStartupTasksAsync(_tokenSource.Token).ConfigureAwait(false); - stopWatch.Stop(); - - _logger.LogInformation("Startup complete {Time:g}", stopWatch.Elapsed); + _logger.LogInformation("Startup complete {Time:g}", Stopwatch.GetElapsedTime(startTimestamp)); // Block main thread until shutdown await Task.Delay(-1, _tokenSource.Token).ConfigureAwait(false); |
