...
Excerpt |
---|
Methods are often inlined, widening the compiler's "horizon" of optimization. |
''TO DO:'' Pull in content from the following sources:
- http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2008-April/000134.html
- http://forum.java.sun.com/thread.jspa?threadID=790229
- http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6316156
- http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6565458
- http://blogs.sun.com/watt/resource/jvm-options-list.html
Heuristics
- ''TO DO...''
Phasing
Currently, inlining decisions are performed eagerly (in both C1 and C2), as soon as the parser reaches a call site the first time.
...
Hot methods are more likely to be inlined... ''(Say on...)''
Manual advice to the inliner
...
- Warm up your code properly.
- Segregate fast paths from slow paths, keeping hot methods small (35 bytecodes or less) with error processing and slow paths in separate methods.
- Request inlining from the compiler oracle. ''(Need a ref.)''
- ''Future:'' Find better heuristics and code them into the JVM.
- ''Future:'' Add an
@Inline
annotation to the JVM. (Needs hacky POC experimentation first.) - ''Future:'' Extend the oracle to include profiling information collected from earlier runs, or generated by an offline configuration tool.
Overview
Content Tools
ThemeBuilder