using System.Diagnostics; namespace XFEExtension.NetCore.XUnit.Benchmarking; /// /// 使用 的单调高精度计数器实现基准时钟。 /// public sealed class StopwatchBenchmarkClock : IBenchmarkClock { /// /// 获取当前平台上 每秒的计数频率。 /// public long Frequency => Stopwatch.Frequency; /// /// 获取 的当前时间戳。 /// /// 当前高精度计数器值。 public long GetTimestamp() => Stopwatch.GetTimestamp(); /// /// 根据平台计数频率将时间戳差值转换为纳秒。 /// /// 测量开始时的计数器值。 /// 测量结束时的计数器值。 /// 换算后的经过纳秒数。 public double GetElapsedNanoseconds(long startTimestamp, long endTimestamp) => (endTimestamp - startTimestamp) * (1_000_000_000d / Stopwatch.Frequency); }