【发布时间】:2013-08-29 15:01:59
【问题描述】:
我编写了一些函数来对函数/代码段进行基准测试。我是这样做的:
start = timer
for(1 second)
call fun
iterations++
stop = timer
然后我有一个平均(平均)时间:(停止-开始/迭代),对吧?
单次调用太“短”而无法测量,那么我如何从这种类型的测量、标准差、四分位数等中计算...?
【问题讨论】:
-
你不能。没有任何有意义的方法 (afaik) 可以为一次测量定义标准偏差或百分位数。
-
要在您的通话中进行标准开发等,您必须测量每次通话的时间,您已经指出该时间太短而无法真正测量。然后你会有一组时间测量来分析。唯一的选择是多次运行您的 1 秒循环并在所有测量的平均值上执行 std dev 等。但目前还不清楚这是否有意义。
-
@Carsten:那我怎么做(我应该怎么做)测量才能得到这个统计值?
标签: c++ c performance benchmarking