• Home
    • View
    • Login
    This page
    • Normal
    • Export PDF
    • Export Word
    • Attachments
    • Page Information

    Loading...
  1. Dashboard
  2. HotSpot
  3. Main
  4. Compiler
  5. PerformanceTechniques
  6. Inlining

Page History

Versions Compared

Old Version 1

changes.mady.by.user John Rose

Saved on Jun 03, 2008

compared with

New Version 2

changes.mady.by.user John Rose

Saved on Jun 03, 2008

  • Next Change: Difference between versions 2 and 3
  • View Page History

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This makes the inlining heuristics less robust, since they must estimate the "heat" of each call site without comparison with call sites not yet encountered. Cold sites are kept out of line, while hot sites are inlined, and recursively parsed immediately. A good project would be to support warm sites (neither hot nor cold), which would be macro-expanded from a priority queue until the estimated frequency drops enough, or the compilation task gets too large.

Profiling

Hot methods are more likely to be inlined... ''(Say on...)''

Manual advice to the inliner

There are several ways to help the inliner make the decision you want it to:

  • 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.
  • ''Future:'' Extend the oracle to include profiling information collected from earlier runs, or generated by an offline configuration tool.
Overview
Content Tools
ThemeBuilder

Terms of Use
• License: GPLv2
• Privacy • Trademarks • Contact Us

Powered by a free Atlassian Confluence Open Source Project License granted to https://www.atlassian.com/software/views/opensource-community-additional-license-offer. Evaluate Confluence today.

  • Kolekti ThemeBuilder Powered by Atlassian Confluence 8.5.21
  • Kolekti ThemeBuilder printed.by.atlassian.confluence
  • Report a bug
  • Atlassian News
Atlassian
Kolekti ThemeBuilder EngineAtlassian Confluence
{"serverDuration": 284, "requestCorrelationId": "e288a9efe2dd2239"}