JfrFlameGraphGenerator.groovy

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Sanitize Lambda class names in a frame

  1. … 1 more file in changeset.
Support Java 9+ flamegraphs

  1. … 8 more files in changeset.
Merge back flame graph improvements from gradle-profiler

Simplified flame graphs are now much easier to read,

with a lot more infrastructure frames being collapsed.

  1. … 1 more file in changeset.
Correct diff file names and titles

Make it clear that one diff is looking foward,

i.e. what would happen if we upgrade from the

baseline to the new version. The other diff is

looking backward, showing what did happen after

upgrading. Both are necessary, as code paths

can completely disappear when going in either

direction, so they only show up in one of them.

Change icicle color for better readability

Create differential icicle graphs

Collapse build scripts in raw flame graphs too

  1. … 1 more file in changeset.
Fix typo

Correct unit of measure for blocking events

Generate differential flame graphs

Compare each experiment's results against each other

experiment's results to make regression analysis easy.

  1. … 4 more files in changeset.
Generate file/socket IO flame graphs

  1. … 1 more file in changeset.
Make stack collapse logic more robust

  1. … 1 more file in changeset.
Simplify DetailLevel enum

Collapse more infrastructure frames in simplified graphs

Remove unused method

  1. … 1 more file in changeset.
Make raw flame graphs more detailed

Combining the fine-grained detail of the unfiltered data with

a minimum width of 1 pixel was leaving large gaps in the graphs.

Instead, the raw graphs now use a higher resolution.

Use long options to make code more readable

  1. … 1 more file in changeset.
Create allocation and blocking flame graphs

This should help capture regressions that are not reflected in on-CPU time.

  1. … 1 more file in changeset.
Create raw flamegraphs alongside simplified ones

Most problems are easily visible in simplfied flame graphs.

They significantly reduce the mental load and will make diffs easier.

Some problems might require a look at the raw data though,

e.g. to spot the exaxt line number of a problematic frame.

For this purpose we now also generate flame graphs from the raw data.

  1. … 1 more file in changeset.
Collapse infrastructure methods on flame graphs

Gradle has a lot of infrastructure code which rarely changes.

These code paths rarely cause a regression and so it is sufficient

to view them as a single frame in most cases.

  1. … 1 more file in changeset.
Show simple type names in flame graphs

It is usually clear from the context which type is meant.

We could later add a "raw" flamegraph alongside it which contains full signatures.

Generate icicle graphs for hotspot analysis

Factor flame graph generation out of JfrProfiler

    • -0
    • +69
    ./JfrFlameGraphGenerator.groovy
  1. … 5 more files in changeset.