提问人:blonded04 提问时间:7/18/2023 更新时间:7/21/2023 访问量:191
我可以通过 C++ 中的谷歌基准库计算吞吐量吗
Can I calculate throughput via google benchmark library in C++
问:
我想测量每 N 秒将执行多少次 C++ 函数,有没有办法通过谷歌基准测试来做到这一点?也许使用一些 lambda 作为函数?ComputeStatistics
如果无法通过谷歌基准测试来做到这一点:还有其他方法可以测量吞吐量吗?
答:
3赞
Cory Kramer
7/18/2023
#1
吞吐量以 https://github.com/google/benchmark/blob/main/docs/user_guide.md#output-formats 为单位报告items/s
Benchmark Time(ns) CPU(ns) Iterations
-------------------------------------------------------
BM_SetInsert/1024/1 28928 29349 23853 133.097kB/s 33.2742k items/s
BM_SetInsert/1024/8 32065 32913 21375 949.487kB/s 237.372k items/s
BM_SetInsert/1024/10 33157 33648 21431 1.13369MB/s 290.225k items/s
所以直接回答你的问题
我想测量每 N 秒执行多少次 C++ 函数
您将取此值乘以秒,这将为您提供大约 N 秒内处理的项目数。items/s
N
评论
0赞
blonded04
7/21/2023
正如我所发现的:你必须自己添加自定义项目,这对于一些你可能想要基准测试的有趣例子来说已经足够困难了,而且还增加了一些性能开销(增加了很小但无论如何的广告)。Benchmark::State
0赞
blonded04
7/21/2023
#2
实际上,最简单的方法是用于要计算吞吐量的每个基准,然后简单地从每个基准中获取。->MinTime(seconds)
Iterations
上一个:了解和比较各种计算的执行时间
下一个:R 中的快速矩阵运算
评论
__attribute__((noinline,noipa))