【问题标题】:How to measure CPU usage on BenchmarkDotNet?如何测量 BenchmarkDotNet 上的 CPU 使用率?
【发布时间】:2021-12-17 01:53:36
【问题描述】:

我正在使用 DotNet Benchmark,我可以获取下表中的内存使用信息。但我需要了解我所做的过程中有多少 CPU 使用率。 DotNetBenchmark 有这个功能吗?如果不是,我应该使用什么方法?

Method Mean Error StdDev Gen 0 Gen 1 Gen 2 Allocated
Get10000Records 38.70 ms 1.413 ms 4.165 ms 2000.0000 1000.0000 - 12 MB
Get100000Records 558.30 ms 11.157 ms 22.024 ms 19000.0000 6000.0000 2000.0000 121 MB

【问题讨论】:

  • 您可以尝试在 Windows 上查看hardware counters(需要BenchmarkDotNet.Diagnostics.Windows nuget)

标签: c# memory-management benchmarkdotnet


【解决方案1】:

我也想要这个,并最终实现了我自己的CpuDiagnoser 来做到这一点。 这是gist。它要求你的基准在进程中运行,我怀疑除非你的基准运行至少几十毫秒,否则计时不够可靠。

将此文件复制到您的基准测试项目中,将[CpuDiagnoser] 添加到基准测试类中,它将输出用户和特权时间的 CPU 使用率。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多