Java JMH, как игнорировать некоторые тайм-аут операции в итерации? - PullRequest
0 голосов
/ 09 апреля 2019

Я тестирую метод RPC udp, который может отбросить пакет и вызвать тайм-аут. Результаты могут быть:

Iteration  20: 0.712 ms/op
Iteration  21: failed to receieve exception= com.my.rpc.exception.RPCInterfaceRuntimeException:  request time out.
475.665 ms/op
Iteration  22: 0.824 ms/op
Iteration  23: 0.728 ms/op
Iteration  24: 0.765 ms/op
Iteration  25: 1.152 ms/op
Iteration  26: 1.216 ms/op
Iteration  27: 1.155 ms/op
Iteration  28: 1.238 ms/op
Iteration  29: failed to receieve exception= com.my.rpc.exception.RPCInterfaceRuntimeException:  request time out.
5633.007 ms/op

Поскольку возможен тайм-аут, окончательный результат вычисляется неверно, например:

Benchmark                  Mode  Cnt   Score     Error   Units
BenchmarkMain.queryBeers  thrpt   90   1.020 ±   0.110  ops/ms
BenchmarkMain.queryBeers   avgt   90  46.558 ± 155.295   ms/op

Среднее время не прямо выше.

Как исключить эти итерации тайм-аута, чтобы получить разумный результат?

...