{shortcut} also opens this dialog box">

Home

{0}."> {0}-{1} of {2} pages containing {3}.">
Skip to end of metadata
  • Page restrictions apply
  • Added by john.rose, last edited by user13389759 on Apr 11, 2012  (view change)
Go to start of metadata

HotSpot Internals

This wiki is written by and for programmers working on the HotSpot JVM system. This includes programmers of systems which generate JVM bytecodes (i.e., language implementors).

In order to be able to edit pages in this wiki, please read the blog post explaining how to become an editor.

Contents

  • Building
    • IncludeDB
  • Compiler
    • C2 Register Allocator Notes
    • EscapeAnalysis
    • Graph Coloring Register Allocation Papers
    • HotSpot Tools
      • IdealGraphVisualizer
      • LogCompilation tool
        • PrintCompilation
    • LogCompilation overview
    • Overview of CompiledIC and CompiledStaticCall
    • Overview of Ideal, C2's high level intermediate representation
    • Server Compiler Inlining Messages
  • PerformanceTechniques — What code shapes does the JVM optimize best? Here is a list.
    • Inlining — Methods are often inlined, widening the compiler's "horizon" of optimization.
    • LogCompilation
    • LoopPredication
    • MicroBenchmarks — Here are some rules, in priority order, to know about when you write micro-benchmarks for Hotspot.
    • PerformanceTacticIndex
    • PrintAssembly — Puzzled by a performance glitch? You might have to look at the generated code.
    • RangeCheckElimination — For loop-invariant arrays, range checks can usually be eliminated.
  • Publications JKU
  • Runtime
    • CallingSequences — A calling sequence is a contract between two blocks of code, a call site (within a caller) and and entry point (within a callee).
      • InterfaceCalls
      • StaticCalls
      • VirtualCalls
    • CompressedOops
    • JavaControlStack
    • Synchronization
  • Serviceability
  • StorageManagement
    • StoreBarriers — Changes to the heap's object graph need to be tracked by the GC; such tracking is done via store barriers.
  • StyleGuide — How will my new code best fit in with the Hotspot code base? Here are some guidelines.

Intentions and non-intentions

This wiki contains:

  • An architectural guide to the Runtime, Compiler, GC, Serviceability, etc.
  • Details on performance techniques.
  • A place to document likely future work (major refactorings or cleanups, new optimizations, etc.).
  • Quick links to similar information in other places on the web.
    • java.sun.com/javase/technologies/hotspot ("Java SE HotSpot at a Glance")
    • openjdk.java.net/groups/hotspot/ (OpenJDK HotSpot Project home)
    • HotSpot-related research at the Johannes Kepler University Linz
  • Information which, once written, is expected to remain accurate and relevant, as long as the related code remains stable.

Please look for the following types of information elsewhere:

  • Not an introduction or quick-start for working on the JVM. (TO DO: Put links here.)
  • Not build instructions.
  • Not a substitute for comments in the source code.
  • Not a list of bugs or tasks.
  • Not a blog, forum, or the comments section thereof.

Interesting tasks to do

  • Extract links and info. from messages and blog postings, especially via hotspot-dev@openjdk.
  • Extract links and info. from historical Sun mailing lists and wikis. (Sun engineers have to do this!)
  • Write down understandings of major modules as they are (re-)acquired from trips through the code.

Who writes this wiki?

  • We are using the Community Write pattern.
  • There is no public write access, except for leaving page comments. You must be registered and logged in to leave comments.
  • Please do add page comments when a page should answer your question but doesn't. (That means, potentially on any page.)
  • The most effective page comments will include links to relevant email discussion threads, e.g., on the Hotspot compiler-dev list.
  • Any member of the OpenJDK H
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.