Lately we came across an interesting case where multi-host+mult-networks resulted editing a host to conclude in minutes. One assumption that was raised which we wanted to eliminate was that the decryption we perform on a fence agent password might be taking too long.

So these days it's an easy task thanks to JMH[1], supplied by the jdk itself. I kickstarted [2] and added a 'DecryptionBenchmark', see the output as an example[3]

Although The JMH project recommends to create a separate project I find it would be less trivial to people to contribute benchmarks let alone just playing around with current code they want to test.

- So, (when it will be merged) you add your benchmark under
 backend/manager/modules/benchmarks/MyBenchmark.java

- run it from intellij using the jmh plugin exactly like a unit-test
OR
- mvn test -P benchmarks -pl org.ovirt.engine:benchmarks
OR
- java -jar benchmarks.jar

I hope this would serve all of us well, please review and add your benchmarks.

PS - this will not run in the CI atm.

[1] http://openjdk.java.net/projects/code-tools/jmh/
[2] https://gerrit.ovirt.org/74537 microbenchmarks: Introduce microbenchmarks using JMH
[3] DecryptionBenchmark output (short version):

# Run complete. Total time: 00:09:06

Benchmark                             Mode  Samples    Score  Score error  Units
b.DecryptionBenchmark.decryption     thrpt       50  101.258        1.270  ops/s
b.DecryptionBenchmark.encryption     thrpt       50  238.587        4.667  ops/s
b.DecryptionBenchmark.decryption      avgt       50    0.010        0.000   s/op
b.DecryptionBenchmark.encryption      avgt       50    0.004        0.000   s/op
b.DecryptionBenchmark.decryption    sample     5544    0.010        0.000   s/op
b.DecryptionBenchmark.encryption    sample    13067    0.004        0.000   s/op
b.DecryptionBenchmark.decryption        ss       50    0.014        0.001      s
b.DecryptionBenchmark.encryption        ss       50    0.009        0.001      s

Process finished with exit code 0