Yes, each Ruby method needs to get executed 50 times to JIT to JVM bytecode, and from there it takes an additional 10,000 calls for HotSpot to JIT that to machine code.
Any hotspots therefore need to be hit at least 10,050 times in order to be fully warmed up.
Just start the JVM with -XX:CompileThreshold=<some_number>
It only defaults to 10,000 when the JVM is running in server mode, its 1,500 when in client. Which mode a default install runs in is a bit wonky so I always explicitly set it (with -server as an argument to the JVM).
Comments
Yes, each Ruby method needs to get executed 50 times to JIT to JVM bytecode, and from there it takes an additional 10,000 calls for HotSpot to JIT that to machine code.
Any hotspots therefore need to be hit at least 10,050 times in order to be fully warmed up.
Just start the JVM with -XX:CompileThreshold=<some_number>
It only defaults to 10,000 when the JVM is running in server mode, its 1,500 when in client. Which mode a default install runs in is a bit wonky so I always explicitly set it (with -server as an argument to the JVM).