强制 QBENCHMARK 执行多次迭代
Force QBENCHMARK to perform several iterations
如何使用 QBENCHMARK
执行多次迭代?
例如我有这个代码:
void MyUnitTest::speedText()
{
QBENCHMARK {
obj->foo();
}
}
我查看了文档,上面写着:
The code inside the QBENCHMARK macro will be measured, and possibly also repeated several times in order to get an accurate measurement. This depends on the selected measurement back-end.
我尝试使用默认值和 -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
进行多次迭代?
QBENCHMARK
只要迭代经过的时间超过某个固定阈值(阈值取决于所选后端),就只运行一次。
为了强制 QBENCHMARK
执行多次迭代,您需要设置 command line option -iterations 10
。
如何使用 QBENCHMARK
执行多次迭代?
例如我有这个代码:
void MyUnitTest::speedText()
{
QBENCHMARK {
obj->foo();
}
}
我查看了文档,上面写着:
The code inside the QBENCHMARK macro will be measured, and possibly also repeated several times in order to get an accurate measurement. This depends on the selected measurement back-end.
我尝试使用默认值和 -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
进行多次迭代?
QBENCHMARK
只要迭代经过的时间超过某个固定阈值(阈值取决于所选后端),就只运行一次。
为了强制 QBENCHMARK
执行多次迭代,您需要设置 command line option -iterations 10
。