Честно говоря, я не знаю, как вычисляется cnt
, когда режим бенчмарка равен Mode.SampleTime
, но я хочу уточнить пару моментов.
Прежде всего, сравнение с JMH является параллельным по своей природе,В аннотации @Threads
указывается, что для выполнения теста необходимо выделить десять потоков (по умолчанию 4).Если вы не укажете @Threads
, он выделит только один поток для бенчмаркинга.
Во-вторых, если вы измените свой режим на Mode.Throughput
и добавите аннотацию @Fork(value = 5)
, вы увидите столбец cnt
сзначение 50. Потому что ваш тест будет выполнен в 5 форках, и каждый форк будет иметь 10 итераций.Проще говоря, cnt
для этого случая - forkNumber * measurementIterations
.
Наконец, этот расчет изменяется, когда режим равен Mode.SampleTime
или когда вы используете аннотацию @Param
(cnt = numOfParams * forkNumber * measurementIterations
).Например, если вы запускаете другой тест с одинаковыми аннотациями (Mode.SampleTime
), вы увидите разные цифры в столбце cnt
.
Надеюсь, это поможет!