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