web-dev-qa-db-ja.com

VisualVMを使用して各機能のコストを取得する方法

VisualVMは素晴らしいですが、私にとっては少し複雑なツールです。

私は(Eclipseで)多くの関数を持つクラスを作成しました。各関数の呼び出し回数と実行時のコストに関する情報を取得するにはどうすればよいですか?

22
wilbeibi

VisualVMを使用したプロファイリング、パート1 および VisualVMを使用したプロファイリング、パート2 を参照して、プロファイリング、およびプロファイリングルートとインストルメンテーションフィルターの設定方法の詳細を確認してください。

5
Tomas Hurka

実は簡単です。プログラムを実行すると、VisualVMパネルに実行中のプロセスとして自動的に表示されます。それをクリックして、[サンプラー]タブに直接移動します。最後に、CPUとビンゴをクリックしてください!ここで、各関数にかかる時間を確認できます。 (驚くばかり!)

43
lfvv

徹底的な分析には、代替ツールを使用する必要があります。 JProfiler。

@TomasHurkaによると、VisualVMでもプロファイリングできます( https://blogs.Oracle.com/nbprofiler/entry/profiling_with_visualvm_part_1

2
Michal Borek

これはあなたにとって少し役立つかもしれません。

時間差を使用して、メソッドに何かを返すようにして実行を計算します。

  long before = System.currentTimeMillis();
  String responseFromMethod=methodCall(); // String value returned from method

  long totalResponseTime=((System.currentTimeMillis() - before )/1000); 

関数が呼び出された回数のカウンター値を保持できます。

VisualVMの場合、EclipseMATを使用してヒープダ​​ンプを分析できます。それはあなたのプログラムがどこで改善を必要とするかを説明します。

ありがとう、

0
Madan Madan