Using lambda and method reference differ significantly in performance with Java 8 streams

For some reason your pom contains ancient kotlin compiler. I fixed version to 1.4.10 and run it on GraalVM 11. Here are the results:

Benchmark Mode Cnt Score Error Units
LambdaBenchmark.parallelStreamFunRef avgt 5 0.203 0.012 s/op
LambdaBenchmark.parallelStreamLambda avgt 5 0.2 0.001 s/op
LambdaBenchmark.sequenceFunRef avgt 5 0.222 0.003 s/op
LambdaBenchmark.sequenceLambda avgt 5 0.224 0.016 s/op
LambdaBenchmark.streamFunRef avgt 5 0.233 0.004 s/op
LambdaBenchmark.streamLambda avgt 5 0.233 0.001 s/op

The 10% difference is most probably caused by primitive boxing which could be avoided in specialized streams.

3 Likes