VisualVMが使ってみるとけっこうよかった件
仕事で負荷試験などを行ったのだが、ボトルネックがどこであるか非常にわかりやすい。
ボトルネックの見つけ方
VisualVMでできること
- WEBアプリケーションのスレッドごと、コールスタックごとのCPU処理時間算出
- WEBアプリケーションのSQLクエリの呼び出し回数とコールスタックと処理時間算出
コールスタック
- コールスタックとは関数の呼び出し履歴をツリー形式で見ることができるようにしたもので、どの関数でどのくらい時間がかかっているかとてもわかりやすい
気付きなど
- 意外にJavaのロジックで重そうであっても時間がかからない(レコードが10万程度にならないと繰り返し処理で問題が出ることはない)
- DBの呼び出しをできるだけへらすことがパフォーマンス向上につながる
- そういう意味ではキャッシュの実装もパフォーマンス向上に有効