Performance differences between Java 8,, 11, 14 and 16

Peter Firmstone peter.firmstone at zeus.net.au
Wed May 12 05:31:12 UTC 2021


Just ran some performance stress tests to compare performance between 
Java 8 and Java 14 with SecurityManager enabled and using TLSv1.3 secure 
communications.

On Java 8, AccessController.getStackAccessControlContext[native]() is 
7,741ms of process CPU consumption.

On Java 11, AccessController.getStackAccessControlContext[native]() is 
7,769ms of process CPU consumption.

On Java 14, AccessController.getStackAccessControlContext[native]() is 
133,815 ms of process CPU consumption.

On Java 16, AccessController.getStackAccessControlContext[native]() is 
5,144 ms of process CPU consumption.

I wasn't expecting such a huge difference in performance.

Total time for the test on Java 8 is 97 seconds.

Total time for the test on Java 11 is 1 minute 37 seconds (same as Java 8)

Total time for the test on Java 14 is 2 minutes and 1 second.

Total time for the test on Java 16 is 1 minute and 36 seconds.

Both tests are using TLSv1.3 secure communications.

It would seem that Java 16, 8 and 11 are the performance winners in this 
case, where the above method is less than 0.5% of CPU. Java 14 is around 
15% of CPU.

Not sure why Java 14 is performing poorly in comparison to other 
versions, the results are pretty consistent to the second.

-- 
Regards,
  
Peter Firmstone
Zeus Project Services Pty Ltd.




More information about the security-dev mailing list