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

    Loading...
  1. Dashboard
  2. Undefined Space
  3. HotSpot
  4. MethodData

MethodData

  • Created by John Rose on May 25, 2013
A profile is information which summarizes the behavior of a bytecode instruction at some profile point in the program being executed by the JVM.  The summary is designed to allow the optimizing compiler to guess at behaviors at the same point in the program.  The profiles are crucial to later optimizing compilation.

A profile point is a specific instance of a bytecode.  Not all bytecodes perform profiling.

What is profiled?

A common form of data collected at a profile point is an execution count.  The execution count allows the optimizing compiler to estimate the frequency of future executions of the code.  Branches record taken and (if conditional) untaken counts.  Method invocations also collect counts, since exceptions can cause downstream code to become less frequent.

Profile data structure

A profile is a metadata structure of type MethodData.  Each method has zero or one of them.  The structure is laid out as a heterogeneous array which is sequenced in parallel with the bytecodes themselves.  Only only a minority of bytecodes capture profile data, the overall profile block is often larger than the bytecodes themselves.  Each element in the profile array captures information for one instance of a bytecode in the method.  (These are the profile points referred to above.)

A MethodData block is not created when its method is first loaded, but rather when the method is somehow noticed as relevant to execution (e.g., warm enough). Each profile applies to one bytecode method, and is affected by all executions of that method, from whatever caller.

The interpreter and some compiled code (tier one) collect profiles.  Tier one emulates the interpreter with respect to profiling.

Overview
Content Tools
ThemeBuilder
  • No labels

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.23
  • Kolekti ThemeBuilder printed.by.atlassian.confluence
  • Report a bug
  • Atlassian News
Atlassian
Kolekti ThemeBuilder EngineAtlassian Confluence
{"serverDuration": 213, "requestCorrelationId": "59a5c4b0b38c80c6"}