2

如何使用 执行多次迭代QBENCHMARK

例如我有这个代码:

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

我查看了文档,它说:

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

我尝试使用默认值 and -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)

其他 2 个不起作用 --callgrind仅适用于 Linux,而-eventcounter似乎导致单元测试终止。

那么有没有办法进行QBENCHMARK多次迭代呢?

4

1 回答 1

4

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

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

于 2015-03-20T08:44:17.037 回答