强制QBENCHMARK执行多次迭代



如何使用QBENCHMARK执行多次迭代?

例如,我有这样的代码:

void MyUnitTest::speedText()
{
    QBENCHMARK {
        obj->foo();
    }
}

我看了一下文件,上面写着:

QBENCHMARK宏中的代码将被测量,并且可能还会重复几次以获得准确的测量结果。这取决于所选的测量后端。

我尝试了默认和-tickcounter,但两者都只显示了一个迭代:

默认值(无参数):

RESULT : MyUnitTest::speedText():
     89 msecs per iteration (total: 89, iterations: 1)

-tickcounter:

RESULT : MyUnitTest::speedText():
     210,246,493 CPU ticks per iteration (total: 210,246,493, iterations: 1)

另外两个不起作用——-callgrind只是Linux,而-eventcounter似乎会导致单元测试终止。

那么,有没有一种方法可以让QBENCHMARK进行不止一次迭代呢?

QBENCHMARK只运行一次,只要迭代的运行时间超过某个固定阈值(阈值取决于所选的后端)。

为了强制QBENCHMARK执行多次迭代,您需要设置命令行选项-iterations 10

最新更新