[hibernate-dev] [HV] Hibernate Validator 6 benchmark updates

Guillaume Smet guillaume.smet at gmail.com
Wed Jul 19 10:44:49 EDT 2017


Hi,

So, as we are leaning towards final, I made another round of benchmarking
on HV 6.

They are run on the same machine as the previous "Hibernate Validator 6
benchmarks results" I posted a few months ago [1] so they can be compared
to these numbers (you'll notice the 5.4.1 numbers are about the same
between the 2 emails).

Note that these benchmarks only exercises the validation engine but does
not report any violation.

I think I'll add some more benchmarks to ensure violation reporting also
moves in the right direction.

It might also be a good occasion to revisit this benchmark:
http://carinae.net/2010/06/benchmarking-hibernate-validator-and-apache-beanvalidation-the-two-jsr-303-implementations/
. With a large value of "revisit" as it's really basic but the scenarios
are interesting. Note that I'm a bit pessimistic on the parsing part: we
now do a lot more work than before to deal with container elements so the
startup cost will probably be significantly higher.

== Apache BVal 1.1.2

Result
"org.hibernate.validator.performance.simple.SimpleValidation.testSimpleBeanValidation":
  357.500 ±(99.9%) 5.327 ops/ms [Average]
  (min, avg, max) = (337.100, 357.500, 381.472), stdev = 10.760
  CI (99.9%): [352.173, 362.827] (assumes normal distribution)

Result
"org.hibernate.validator.performance.cascaded.CascadedValidation.testCascadedValidation":
  379.605 ±(99.9%) 5.817 ops/ms [Average]
  (min, avg, max) = (360.654, 379.605, 411.361), stdev = 11.750
  CI (99.9%): [373.789, 385.422] (assumes normal distribution)

(not really clear how BVal happens to be faster in the cascaded validation
case)

== HV 5.4.1.Final

Result
"org.hibernate.validator.performance.simple.SimpleValidation.testSimpleBeanValidation":
  558.196 ±(99.9%) 3.643 ops/ms [Average]
  (min, avg, max) = (542.396, 558.196, 575.360), stdev = 7.360
  CI (99.9%): [554.552, 561.839] (assumes normal distribution)

Result
"org.hibernate.validator.performance.cascaded.CascadedValidation.testCascadedValidation":
  285.788 ±(99.9%) 1.970 ops/ms [Average]
  (min, avg, max) = (278.611, 285.788, 298.530), stdev = 3.980
  CI (99.9%): [283.817, 287.758] (assumes normal distribution)

== Master from March after the first round of improvements (numbers taken
from the previous email)

Result
"org.hibernate.validator.performance.simple.SimpleValidation.testSimpleBeanValidation":
  869.546 ±(99.9%) 14.734 ops/ms [Average]
  (min, avg, max) = (760.007, 869.546, 909.206), stdev = 29.763
  CI (99.9%): [854.813, 884.280] (assumes normal distribution)

Result
"org.hibernate.validator.performance.cascaded.CascadedValidation.testCascadedValidation":
  343.699 ±(99.9%) 2.077 ops/ms [Average]
  (min, avg, max) = (331.333, 343.699, 352.626), stdev = 4.196
  CI (99.9%): [341.622, 345.776] (assumes normal distribution)

== HV 6 - Current master with
https://github.com/hibernate/hibernate-validator/pull/814 applied

Result
"org.hibernate.validator.performance.simple.SimpleValidation.testSimpleBeanValidation":
  924.121 ±(99.9%) 3.686 ops/ms [Average]
  (min, avg, max) = (905.423, 924.121, 941.295), stdev = 7.446
  CI (99.9%): [920.435, 927.807] (assumes normal distribution)

Result
"org.hibernate.validator.performance.cascaded.CascadedValidation.testCascadedValidation":
  430.092 ±(99.9%) 3.661 ops/ms [Average]
  (min, avg, max) = (416.439, 430.092, 447.607), stdev = 7.396
  CI (99.9%): [426.431, 433.754] (assumes normal distribution)

== Conclusion

The good news is that the results are even better than the ones from March,
after some further tweaking.

We are significantly faster than BVal in these scenarios and also
significantly faster than 5.4.1.Final.

Now, we need to get this PR in :).

[1] http://lists.jboss.org/pipermail/hibernate-dev/2017-March/016057.html


More information about the hibernate-dev mailing list