JDK-8056179 : Store permissions in concurrent collections in PermissionCollection subclasses
  • Type: Enhancement
  • Component: security-libs
  • Sub-Component: java.security
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-08-27
  • Updated: 2017-11-27
  • Resolved: 2015-06-09
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9 b69Fixed
Related Reports
Relates :  
Relates :  
Description
Initial benchmarks show a significant increase in throughput of the PermissionCollection.implies method when concurrent collections are used to store permissions (instead of using synchronized blocks to synchronize access to non-concurrent collections). This applies to the PermissionCollection subclasses implemented in SocketPermission, FilePermission, etc.
Comments
Attached is a chart comparing the performance of Permissions.getPermissions(Permission) before and after the fix with various numbers of threads. The system under test was Intel�� Core��� i5-2520M CPU @ 2.50GHz �� 4 running Ubuntu 14.04 LTS. Single thread performance is better (by about 12%) and multiple-thread throughput is increased approximately 6-10 times depending on the number of threads.
03-06-2015

Results of Permissions.Implies.implies benchmark (8 threads, 4 cpu system): before: Benchmark Mode Samples Score Error Units o.o.b.j.s.Permissions.Implies.implies thrpt 25 3921663.747 �� 113821.963 ops/s after: Benchmark Mode Samples Score Error Units o.o.b.j.s.Permissions.Implies.implies thrpt 25 33389354.257 �� 585894.399 ops/s (almost 10x improvement)
19-12-2014