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

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

文章插图
3. Stopwatch
Stopwatch
被广泛用于测量运行时的性能 。到目前为止,存在的问题是,使用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
文章插图
这种方法的速度优化并不明显,然而节省堆内存分配可以说是值得的 。
结尾我希望,我可以在性能和基准测试的世界里给你一个有趣的切入点 。如果你关于特定性能主题想法,请在评论中告诉我 。
如果你喜欢这个系列的文章,请务必关注我,因为还有很多有趣的话题等着你 。
谢谢你的阅读!
版权原文版权:Tobias Streng翻译版权:InCerry原文链接:https://medium.com/@tobias.streng/net-performance-series-1-performance-improvements-in-net-7-fb793f8f5f71
经验总结扩展阅读
- dubbo的一系列配置与搭建
- 记一次 .NET 某娱乐聊天流平台 CPU 爆高分析
- iqoo7拍照怎么样_iqoo7拍照测评
- vivox60充电时间_vivox60充电快吗
- MassTransit | .NET 分布式应用框架
- 基于PL022 SPI 控制器 海思3516系列芯片SPI速率慢问题深入分析与优化
- 格力空调哪个系列好 格力空调都有哪些系列
- 4 .NET 6学习笔记——如何在.NET 6的Desktop App中使用Windows Runtime API
- 学习ASP.NET Core Blazor编程系列八——数据校验
- 【.NET 6】RabbitMQ延迟消费指南