You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Benchmark性能计数器结果后n、p、u字母含义咨询

关于Google Benchmark性能计数器后缀字母的含义

问题背景

用户编写了如下Google Benchmark基准测试代码:

#include "benchmark/benchmark.h"
#include <cstring>

static void bench_memset(benchmark::State& state) {
    char buffer[16];

    for(auto _ : state) {
        memset(buffer, '\0', 16);
        benchmark::ClobberMemory();
    }
}

BENCHMARK(bench_memset);
BENCHMARK_MAIN();

执行测试命令:

./my_benchmark --benchmark_perf_counters=BRANCH-MISSES,CACHE-MISSES,CACHE-REFERENCES --benchmark_counters_tabular=true

得到初始测试结果:

---------------------------------------------------------------------------------------------------
Benchmark             Time             CPU   Iterations BRANCH-MISSES CACHE-MISSES CACHE-REFERENCES
---------------------------------------------------------------------------------------------------
bench_memset      0.611 ns        0.611 ns   1000000000            7n        1000p              52n

当将测试中buffer大小调整为4096字节后,结果变为:

---------------------------------------------------------------------------------------------------
Benchmark             Time             CPU   Iterations BRANCH-MISSES CACHE-MISSES CACHE-REFERENCES
---------------------------------------------------------------------------------------------------
bench_memset       96.0 ns         96.0 ns      6959398      1.14952u            0         81.6163u

用户理解分支缺失、缓存缺失的核心概念,但不清楚性能计数器指标后的n、p、u等字母含义,查阅官方文档未找到相关说明,特此询问。

后缀字母含义解析

这些后缀是Google Benchmark为了让结果更易读,对性能计数器数值自动选择的归一化方式标识,具体含义如下:

  • n:代表单次迭代的绝对计数,即每运行一次基准测试循环,对应计数器的平均增量值。比如第一个结果里的7n,表示每次memset操作平均产生7次分支缺失。
  • p:代表每千次迭代的计数,1000p即每执行一千次测试循环,对应计数器累计产生1000次缓存缺失。
  • u:代表每微秒的计数,1.14952u表示每微秒内平均产生约1.15次分支缺失。
  • 无后缀:代表测试全程的总计数,即整个基准测试运行期间,计数器的累计总值。

Google Benchmark会根据计数器数值的量级自动切换归一化方式,确保结果直观易读。比如当单次迭代计数极小时,会优先展示总计数或每千次迭代计数;当计数与时间关联度更高时,会切换为每微秒计数。

内容的提问来源于stack exchange,提问作者Hunter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 07:35:10