Improving security application performance
Java Enhancement Proposal 232, titled Improving Security Application Performance, was focused on performance improvements when running applications with a security manager installed. Security managers can result in processing overhead and less than ideal application performance.
This is an impressive undertaking as current CPU overhead when running security managers is estimated to result in 10-15% performance degradation. It is not feasible to completely remove the CPU overhead as some CPU processing is required to run the security manager. That being said, the intention of this proposal (JEP-232) was to decrease the overhead percentage as much as possible.
This effort resulted in the following optimizations, each detailed in subsequent sections:
- Security policy enforcement
- Permission evaluation
- Hash code
- Package checking algorithm
Security policy enforcement
JDK 9 uses ConcurrentHashMap
for mapping ProtectionDomain
to PermissionCollection
. ConcurrentHashMap...