JDK-8183573 : Refactor CodeHeap and AOTCodeHeap to devirtualize hot methods
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9,10
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2017-07-05
  • Updated: 2017-09-01
  • Resolved: 2017-07-10
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 10
10 b21Fixed
Related Reports
Relates :  
Relates :  
Description
In CodeCache::find_blob methods, we're doing virtual calls to each CodeHeap, resulting in up to 4 virtual calls (when AOT is enabled). 

By refactoring so that more code is shared between AOTCodeHeap and CodeHeap, we can reduce the number of virtual calls per find_blob call, effectively speeding up stack walking. 
Comments
Possible fix: http://cr.openjdk.java.net/~redestad/scratch/codeheap_contains.01/ Improves Throw micros by a few percent, but needs thorough testing
05-07-2017