The performance team identified an issue in JdbcValuesResultSetImpl and how the lambda’s in this class are being optimised by the JVM. We’re not yet sure exactly of why the JVM is not optimising these (as at first glance it should be able to) and they’ll investigate further about that, but it seems we can easily bypass the problem by avoiding the use of the Advancer functional interface. In addition this also allows us to avoid allocating at runtime, as it turns out that some of these Advancer implementations were needing to capture state (e.g. processPosition method needing to carry the position variable). |