Как выполнить несколько итераций с помощью QBENCHMARK
?Force 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)
Другой 2 не работают - -callgrind
является Linux-only, тогда как -eventcounter
, по-видимому, вызывает un он проверяет завершение.
Итак, есть способ сделать QBENCHMARK
сделать несколько итераций?
Я думаю, что QBENCHMARK будет работать только один раз, если таймер будет неизмеримо –
О, я понял. Я думал, что он будет запускать его, по крайней мере, несколько раз, чтобы показать эффекты кэширования (первый запуск по сравнению со средним). Думаю, я мог бы просто имитировать его, повторяя блок «QBENCHMARK». – sashoalm