All Projects → kornilova203 → FlameViewer

kornilova203 / FlameViewer

Licence: MIT license
Tool for flamegraphs visualization

Programming Languages

kotlin
9241 projects
javascript
184084 projects - #8 most used programming language
java
68154 projects - #9 most used programming language
CSS
56736 projects
HTML
75241 projects
Closure Templates
11 projects

Projects that are alternatives of or similar to FlameViewer

pylaprof
A Python sampling profiler for AWS Lambda functions (and not only).
Stars: ✭ 12 (-84.21%)
Mutual labels:  profiler, flamegraph
kokkos-tools
Kokkos C++ Performance Portability Programming EcoSystem: Profiling and Debugging Tools
Stars: ✭ 52 (-31.58%)
Mutual labels:  profiler
aemtools
AEM Tools is Intellij IDEA plugin containing Adobe Experience Manager related features
Stars: ✭ 49 (-35.53%)
Mutual labels:  intellij
auto-dark-mode
IDEA plugin to automatically apply system theme settings on macOS and Windows.
Stars: ✭ 35 (-53.95%)
Mutual labels:  intellij
IntelliJ-IDEA-Translate2Chinese
Chinese ​(Simplified)​ Language Pack EAP v201.15 魔改进行中...
Stars: ✭ 14 (-81.58%)
Mutual labels:  intellij
EditorGroups
IntelliJ plugin prototype of https://youtrack.jetbrains.com/issue/IDEA-12130#comment=27-2838171
Stars: ✭ 16 (-78.95%)
Mutual labels:  intellij
plugin-intellij
jsDelivr plugin for JetBrains IntelliJ based editors
Stars: ✭ 18 (-76.32%)
Mutual labels:  intellij
GLAU BCSC0002
This is the official repository for the course Object-Oriented Programming BCSC0002 for GLA University 2019
Stars: ✭ 46 (-39.47%)
Mutual labels:  intellij
material-design-color-palette
🎨Material Design color palette pluin for IntelliJ based IDEs.
Stars: ✭ 19 (-75%)
Mutual labels:  intellij
idea-carbon-now-sh
IntelliJ IDEA plugin to open the selected code in https://carbon.now.sh
Stars: ✭ 27 (-64.47%)
Mutual labels:  intellij
fabric-loom
Gradle build system plugin used to automate the setup of a minecraft mod development environment.
Stars: ✭ 150 (+97.37%)
Mutual labels:  intellij
dummytext-plugin
"Dummy Text Generator" plugin for Jetbrains IDEs
Stars: ✭ 31 (-59.21%)
Mutual labels:  intellij
GVProf
GVProf: A Value Profiler for GPU-based Clusters
Stars: ✭ 25 (-67.11%)
Mutual labels:  profiler
intellij-ui-test-robot
The library allows you to write and execute UI tests among IntelliJ IDEA. You can test your Plugin.
Stars: ✭ 60 (-21.05%)
Mutual labels:  intellij
profiling
Non-discriminatory profiling of Ruby code leveraging the ruby-prof gem
Stars: ✭ 12 (-84.21%)
Mutual labels:  profiler
interstellar
Dark editor theme for JetBrains IDEs
Stars: ✭ 26 (-65.79%)
Mutual labels:  intellij
audria
audria - A Utility for Detailed Ressource Inspection of Applications
Stars: ✭ 35 (-53.95%)
Mutual labels:  profiler
haskell-code-spot
Visual tool to spot odd runtime behaviour of Haskell programs.
Stars: ✭ 106 (+39.47%)
Mutual labels:  profiler
referencer-plugin
"Referencer" plugin for Jetbrains IDEs
Stars: ✭ 20 (-73.68%)
Mutual labels:  intellij
IdeaSingletonInspection
Inspection for detecting of inappropriate use of Singleton pattern in Java
Stars: ✭ 14 (-81.58%)
Mutual labels:  intellij

FlameViewer

Build Status

Install Plugin

Table of contents

Uploading file to FlameViewer

  1. Click Tools | Open FlameViewer...
  2. Upload a file of a supported profiler:
    1. jfr files generated by Flight Recorder
    2. Yourkit csv files. To generate csv file from a snapshot run following script: java -jar -Dexport.call.tree.cpu -Dexport.csv /lib/yjp.jar -export ~/Snapshots/.snapshot
    3. Files in flamegraph format
    4. fierix files generated by Fierix profiler

Java performance recording. Quick start

Use Flight Recorder to profile your program and then open FlameViewer:

  1. Make sure you are using Oracle JDK (not OpenJDK) because Java Mission Control comes only with Oracle JDK. To do it open File | Project Structure... | Project then click Edit beside Project SDK, look at JDK home path it should be something like this: .../jdk1.8.0_162 not like this: .../java-8-openjdk-amd64. You can download needed version from Oracle website: JDK 8, JDK 9
  2. Run JVM with following VM options: -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=duration=30s,filename=my_recording.jfr -XX:FlightRecorderOptions=stackdepth=256
  3. Open FlameViewer Tools | Open FlameViewer...
  4. Upload my_recording.jfr

FlameViewer Features

Flamegraph Visualizer helps you to analyze performance of Java program. It draws a flamegraph where x-axis represents time and y-axis shows stack depth.

Each rectangle represents a method. If a rectangle is wide it means that your program spent a lot of time executing this method and methods that were called within it.

Basically you are looking for rectangles that have a wide "roof" that does not have any other method calls. It means that your program spent a lot of time executing this method.

Call Traces

This flamegraph accumulates all stacktraces of profiled program. One rectangle represents one or multiple calls of method.

If you place the cursor on the method's rectangle you will see popup with detailed information about method.

If you click on call-traces/back-traces icon on a popup (blue icons at the top of popup) you will see call-traces/back-traces tree for the method (this tree accumulates information from all calls of the method).

Back Traces

Back Traces is the bottom-up tree. It shows methods that called the method on the top of flamegraph. This flamegraph may be helpful if you know that some method was called a lot of times and you want to know what is the reason for it.

Zoom

Click on a rectangle to zoom in on it.

Filtering

Regexp for filtering method calls e.g. my\.package.*|another\.package.*.

Search

You can find any method, class or package using search.

Tips:

  • Character '*' matches any sequence of characters.
  • If profiler saved values of parameters, you may include them in search string. For example: resolve(*, *IdeaPlugin.xml

Hot Spots

On Hot Spots page you can see where your program spent the most time.

Call Tree

This page is only for .ser files
On Call Tree page you can see activity of all threads. To see what was happening inside particular thread you should click on it's name.
threads preview

Detailed View of Thread

This page is only for .ser files
On this page you can see what was happening inside some thread. All method calls have original order. Each rectangle represents only one method call.
You can see popup with detailed information about method if you place the cursor on the method (also there are parameters and return value if they were saved).

Building from sources

If only want to use plugin then you should simply install ready-to-use jar.

./gradlew :visualization:copyStatic
./gradlew :intellij-plugin:runIdea

Regenerate flatbuffers

cflamegraph_schema.fbs has to be regenerated after flatbuffers compiler and flatbuffers runtime library are updated.

chmod +x ./scripts/install-flatbuffers.sh
./scripts/install-flatbuffers.sh
./gradlew :core:compileFlatBuffers
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].