Oliver Gierke
60bbc59054
DATACMNS-1366 - Performance improvements in CustomConversions.
Removed Optional wrapping for ConcurrentHashMap values in favor of using Void.class as null object. Avoid use streams and removed (repeated) non-null assertions in private methods. Benchmark numbers for calling ….hasCustomReadTarget(…) when non actually exists showing a 5 to 10% increase in performance:
Before:
Iteration 1: 41433276.537 ops/s
Iteration 2: 43991315.457 ops/s
Iteration 3: 45322063.260 ops/s
Iteration 4: 44906183.709 ops/s
Iteration 5: 45378084.579 ops/s
Iteration 6: 44912727.364 ops/s
Iteration 7: 45588155.896 ops/s
Iteration 8: 45453353.185 ops/s
Iteration 9: 45558273.633 ops/s
Iteration 10: 45473310.099 ops/s
After:
Iteration 1: 48979746.822 ops/s
Iteration 2: 48438497.338 ops/s
Iteration 3: 48627686.004 ops/s
Iteration 4: 48815459.842 ops/s
Iteration 5: 48004993.191 ops/s
Iteration 6: 48566871.366 ops/s
Iteration 7: 48604435.350 ops/s
Iteration 8: 47543377.257 ops/s
Iteration 9: 48250165.369 ops/s
Iteration 10: 47845463.861 ops/s