diff options
author | Liudmila Molkova <lmolkova@microsoft.com> | 2017-04-20 20:56:10 +0300 |
---|---|---|
committer | Liudmila Molkova <lmolkova@microsoft.com> | 2017-04-20 20:56:10 +0300 |
commit | 95505ca609217aba962bf7547e2857010740fe5d (patch) | |
tree | d85e1e2bab13e9f5d14c91e92a7cd67e4a15e1ef /src | |
parent | 0bedd4c9b8b8cbbcfbd6cf65ef7a29be9f7fdd88 (diff) |
review: initialize start timestamp and time
Diffstat (limited to 'src')
3 files changed, 13 insertions, 3 deletions
diff --git a/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.corefx.cs b/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.corefx.cs index c485b41b7b..ca167d0be9 100644 --- a/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.corefx.cs +++ b/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.corefx.cs @@ -6,8 +6,12 @@ namespace System.Diagnostics { partial class Activity { + /// <summary> + /// Returns high resolution (~1 usec) current UTC DateTime. + /// </summary> private DateTime GetUtcNow() { + // .NET Core CLR gives accurate UtcNow return DateTime.UtcNow; } } diff --git a/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.netfx.cs b/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.netfx.cs index d7e7ec349e..dade796b38 100644 --- a/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.netfx.cs +++ b/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.DateTime.netfx.cs @@ -8,8 +8,14 @@ namespace System.Diagnostics { partial class Activity { + /// <summary> + /// Returns high resolution (1 DateTime tick) current UTC DateTime. + /// </summary> private DateTime GetUtcNow() { + // DateTime.UtcNow accuracyon .NET Framework is 16ms, this method + // uses combination of Stopwatch and DateTime to calculate accurate UtcNow. + // Timer ticks need to be converted to DateTime ticks long dateTimeTicksDiff = (long)((Stopwatch.GetTimestamp() - syncStopwatchTicks) * 10000000L / (double)Stopwatch.Frequency); @@ -26,8 +32,8 @@ namespace System.Diagnostics syncUtcNow = DateTime.UtcNow; } - private static DateTime syncUtcNow; - private static long syncStopwatchTicks; + private static DateTime syncUtcNow = DateTime.UtcNow; + private static long syncStopwatchTicks = Stopwatch.GetTimestamp(); // sync DateTime and Stopwatch ticks every 2 hours private static Timer syncTimeUpdater = new Timer(s => { Sync(); }, null, 0, 7200000); diff --git a/src/System.Diagnostics.DiagnosticSource/tests/ActivityDateTimeTests.cs b/src/System.Diagnostics.DiagnosticSource/tests/ActivityDateTimeTests.cs index feb17e2f13..7aee8cd0f1 100644 --- a/src/System.Diagnostics.DiagnosticSource/tests/ActivityDateTimeTests.cs +++ b/src/System.Diagnostics.DiagnosticSource/tests/ActivityDateTimeTests.cs @@ -13,7 +13,7 @@ namespace System.Diagnostics.Tests var sw = Stopwatch.StartNew(); activity.Start(); - SpinWait.SpinUntil(() => sw.ElapsedMilliseconds > 1, 3); + SpinWait.SpinUntil(() => sw.ElapsedMilliseconds > 1, 2); activity.Stop(); sw.Stop(); |