如何在BenchmarkDotNet上测量CPU使用率?

4

我正在使用DotNet Benchmark,可以在下表中获取内存使用信息。但是我需要访问我所执行的进程中有多少CPU使用率。DotNetBenchmark是否具有此功能?如果没有,我应该使用什么方法?

方法 平均值 误差 标准偏差 Gen 0 Gen 1 Gen 2 已分配
Get10000Records 38.70 毫秒 1.413 毫秒 4.165 毫秒 2000.0000 1000.0000 - 12 MB
Get100000Records 558.30 毫秒 11.157 毫秒 22.024 毫秒 19000.0000 6000.0000 2000.0000 121 MB

你可以尝试在Windows上查看硬件计数器(需要BenchmarkDotNet.Diagnostics.Windows nuget)。 - Guru Stron
1个回答

0

我也想要这个功能,最终实现了自己的 CpuDiagnoser 以此来实现。

这里是 gist 。它需要在进程内运行基准测试,而且我怀疑如果你的基准测试运行时间不到几十毫秒,计时可能不够可靠。

将此文件复制到您的基准项目中,将 [CpuDiagnoser] 添加到基准类,它将输出用户和特权时间的 CPU 使用情况。为使其正常工作,测试需要在 InProc 中运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接