IntelliJ IDEA 2019.2の新機能プロファイラーを試してみた


IntelliJ IDEA 2019.2の新機能 | 株式会社サムライズム

今回の新機能はチョー豪華!

ぼくは、パフォーマンス改善をよくやるんですけど、IntelliJ IDEAにもプロファイルングツールがつくようになったので、使ってみました。
便利そうだったので、これからのメインウェポンはこれになりそうです。

前提: Ubuntu19.04, Scala(Javaでもいけました)

設定方法

↓のように+を押して一通りのプロファイラーを追加してOKを押す

そうすると実行するときのメニューになんか増えてるんで、とりあえずRun 'なんとか' with 'Profiler'を押してみる

↓のモーダルが出てくるので、

指示の通りに、

sudo sh -c 'echo 1 > /proc/sys/kernel/perf_event_paranoid'
sudo sh -c 'echo 0 > /proc/sys/kernel/kptr_restrict'

を実行。
調べてみたら、この設定は、カーネルのパフォーマンスに関する情報の収集や解析に必要な設定らしいです。
Linux以外だと要らないか別の設定方法が出てくるかも?

↓関連記事
第52章 コンパイラーとツール - Red Hat Customer Portal
Linux* カーネルの解析を有効にする

プロファイルしてみた

Frame Graphタブ

うーんあまり使わないかも?

Call Tree

ツリーになってそれぞれ%で出るようになった。
VisualVMでプロファイルするとこんな感じのが出ますよね。
%の右の青い数字は折り畳まれてる件数みたいです。

Method List

サンプリングされた順でソートされるようになった。
選択したメソッドからBack TraceタブとMerged Calleesタブが選べる。
Back Traceタブはどこから呼ばれたのかをたどることができる。

Merged Calleesタブは、そのメソッド内で呼ばれたメソッドっぽい。

Java Flight Recorderも使ってみた

GCのログやら、弱参照の個数やらなんか色々出ますね。