-
Bug
-
Resolution: Done
-
Major
-
7.16.0.Final
-
None
-
2019 Week 02-04, 2018 Week 51-01
-
2
-
NEW
-
NEW
Changes made to LambdaBeanPropertyMemberAccessor [1] as a part of PLANNER-1286 caused a performance regression in Move Selector benchmarks:
localsearch.cloudbalance.moveselector.CloudBalanceSwapMoveSelectorBenchmark.benchmark__CB_10000_30000 +9.54 %
localsearch.projectjobscheduling.moveselector.ProjectJobSchedulingChangeMoveSelectorBenchmark.benchmark__B_9 +5.96 %
localsearch.tsp.moveselector.TSPSwapMoveSelectorBenchmark.benchmark__USA_CA_2716 +8.59 %
The performance drop is caused by the fact that originally monomorphic call site has been turned into megamorphic in order to provide implementations for each primitive data type (see the new @FunctionalInterfaces there). As a result, JVM cannot do inlining and branch prediction so effectively as before this change.