.NET性能系列文章一:.NET7的性能改进( 四 )


文章插图
1,955.67 μs103.023185 B6.98GetCurrentProcessName

.NET性能系列文章一:.NET7的性能改进

文章插图
18.98 μs1.00456 B1.00在这里,我们可以看到一个更有效的内存方法,对.NET 7的实现有极高的性能提升 。
.NET性能系列文章一:.NET7的性能改进

文章插图
3. StopwatchStopwatch被广泛用于测量运行时的性能 。到目前为止,存在的问题是,使用Stopwatch需要分配堆内存 。为了解决这个问题,dotnet社区实现了一个静态函数GetTimestamp(),它仍然需要一个复杂的逻辑来有效地获得时间差 。现在又实现了另一个静态方法,名为GetElapsedTime(),在这里你可以传递之前的时间戳,并在不分配堆内存的情况下获得经过的时间 。
[Benchmark(Baseline = true)]public TimeSpan OldStopwatch(){Stopwatch sw = Stopwatch.StartNew();return sw.Elapsed;}[Benchmark]public TimeSpan NewStopwatch(){long timestamp = Stopwatch.GetTimestamp();return Stopwatch.GetElapsedTime(timestamp);}MethodMeanRatioAllocatedAlloc RatioOldStopwatch39.44 ns1.0040 B1.00NewStopwatch37.13 ns0.94-0.00
.NET性能系列文章一:.NET7的性能改进

文章插图
这种方法的速度优化并不明显,然而节省堆内存分配可以说是值得的 。
结尾我希望,我可以在性能和基准测试的世界里给你一个有趣的切入点 。如果你关于特定性能主题想法,请在评论中告诉我 。
如果你喜欢这个系列的文章,请务必关注我,因为还有很多有趣的话题等着你 。
谢谢你的阅读!
版权原文版权:Tobias Streng翻译版权:InCerry原文链接:https://medium.com/@tobias.streng/net-performance-series-1-performance-improvements-in-net-7-fb793f8f5f71

经验总结扩展阅读