• ベストアンサー

個々のメソッドの呼び出し時間を取得するには

JAVAで内部で呼び出されてい個々のメソッドがどのぐらいの時間が かかったか取得する方法を教えてください。 VMのパラメータ等で調べられる簡単な方法はあるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • HarukaV49
  • ベストアンサー率53% (48/89)
回答No.2

Eclipse TPTP が個人的には良いと思います。 コマンドラインで、逐一コマンドを打ち込んで実行したり、汎用のテキストエディターで メソッド名を一字一句間違えなく入力しなければいけないような環境で開発を行っていては、 本質的でない部分に異状に多くの時間を費やすことになってしまうでしょう。 まずは、統合開発環境Eclipseの解説書を入手されることをお勧めします。 そして、Eclipse TPTP(Eclipse Test and Performance Tools Platform)を 利用されることが、回り道の様に見えて、開発遂行への最短距離のひとつだと思います。

参考URL:
http://www.thinkit.co.jp/free/tech/22/1/1.html
take_july
質問者

補足

有難うございました。 勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

ご質問のようにメソッドの呼び出し時間や使用メモリといった情報を調べるツールを「プロファイラ」といいます。幾つか種類がありますから「java プロファイラ」などといったキーワードで検索してみてください。参考URLはJDK SE6に標準で付いてくるプロファイラの解説です。

参考URL:
http://itpro.nikkeibp.co.jp/article/COLUMN/20061102/252525/
take_july
質問者

お礼

有難うございました。 勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JNIを使用して、JAVAのメソッド実行結果の取得

    JNIを使用して、VC6からJAVA(アプリケーション)のメソッドを起動して結果を構造体(複数件数)で受け取る事は可能ですか。 JAVAからデータの取得を方法について教えて下さい。

    • ベストアンサー
    • Java
  • プログラム中でjavaのバージョンを「数値」で取得したい

    1.5以上の場合などと分けたいので、数値で取得したいです。 下記のメソッドで文字列として取得し、substringなどで先頭3文字を取得し数値に変換などの方法しかないのでしょうか? System.out.println(System.getProperty("java.version")); System.out.println(System.getProperty("java.vm.version")); System.out.println(System.getProperty("java.specification.version"));

    • ベストアンサー
    • Java
  • staticメソッドの長所短所

    初めまして。 c言語からjavaの勉強を始めたものです。 javaには共通ライブラリをstaticなメソッド(この言い方に慣れない)で作ることが多いようですが、なぜですか? 私の認識は、 staticはメモリの共有領域に確保され誰からも参照できる。 よって、メモリの効率的な確保が出来る。 でも、メソッドを共有領域に持つと各ユーザからそのメソッドが呼ばれたときに同じメモリをさすメソッドが使用される。 つまり、違うユーザがパラメタ違いで同じメソッドを使用すると、処理の途中でパラメタが書き換わってしまう可能性があるかと思います。 これって問題ないのでしょうか? Sumple public static boolean check(String str){ if(str==null){ return false; } int num = Integer.parseInt(str); if(num < 0){ retrun true; } else { retrun false; } } こんなメソッドがあり、パラメタが「2」の人と「-10」の人が同時にアクセスすると結果が変わりそうな気がします。 よろしくお願いします。

  • クラスを作るとメソッドの数が多くなりすぎる

    クラスを作ると,たいがい,メソッドの数が多くなりすぎて,メソッドをさがすのに一苦労します. なにか,クラスのメソッドの設計でいい方法はないでしょうか? メソッドが増えすぎる原因として, ・フィールド変数1つにつき,取得メソッド,設定メソッドで(最大)2つ必要. ということがあります. あと, ・private のメソッド(クラス内部でよく使われる手続きをまとめたもの)が結構必要. ・private のメソッドから呼び出す private のメソッドが結構必要. ということがありますが,publicメソッドがこれらのメソッドと紛れてしまう,ということがあります.

    • ベストアンサー
    • Java
  • rubyでメソッド内で引数名、値を取得

    Rubyでメソッドの引数名をメソッド内部で取得するような事は可能でしょうか? def hoge(a,b,c) # ここでa,b,cの引数名、またその値を取得 # 例えば、{:a=>1, :b=>2, :c=>3}のようにHashの形式で得るなど。 end local_variablesだと、引数も含まれますがその他で定義したものも拾ってしまうため、他の方法を探しています。 わかる方がいれば教えていただけますでしょうか。

  • mainメソッドの持つクラス名を取得するには

    サーブレットが実行された場合そのサーブレット名(getServletNameを使用して)を取得してテキストファイル出力するようにしております。 これをmainメソッドの持つクラス名(実行クラス名)を取得しようとgetClass()やgetName()を使ってやると”staticなメソッドは使用できません"となりコンパイルが通りません。 サーブレットのように実行クラス名を取得するのはmainメソッドの持つクラスの場合無理なんでしょうか?  Javaの初心者なもので情報が少なければ要望していただければご提供しますのでご教授願います。 ちなみに出力する際はFileWriterやRandomAccessFileを使っております。よろしくお願いします。

    • ベストアンサー
    • Java
  • add( )メソッドについて

    import java.applet.Applet; import java.awt.*; /* <applet code="Sample" width=400 height=250> </applet> */ public class Sample extends Applet { public void init() { // ラベルを作成する。 Label lb = new Label("こんにちは。", Label.LEFT); add(lb); } } 上記のプログラムのadd(lb)について質問です。上記のadd()メソッドは、lbはLabelクラスなので、LabelクラスかComponentクラスのパラメーターを一つ持つvoid型のadd()メソッドとなると思うのですが、調べてもそのようなメソッドが存在しませんどうしてでしょうか?上述のことが間違っているのでしょうか?教えてください。

    • ベストアンサー
    • Java
  • 全パッケージの取得、全クラスの取得、全メソッドの取得

    やりたい事は、メインクラスより、同階層の全パッケージを取得(A)、 (A)より同階層の全クラスを取得(B)、 (B)より同階層の全メソッドを取得といったような事です。 例えば public class a { public static void main(String args[]) {  全パッケージの取得  全クラスの取得  全メソッドの取得 } } みたいな感じに。 試行錯誤したのですが、その処理を行う事の出来るメソッドかどうかも良く分からないし、 コンパイルエラーになるばかりで実現が出来ません。  ・メインクラスから同階層のパッケージを取得してパッケージ名を出力。  ・メインクラスからxパッケージ内の同階層のクラスを取得してクラス名を出力。  ・メインクラスからxパッケージにあるyクラス内のメソッドを取得してメソッド名を出力。 上記のようなめちゃくちゃシンプルなコードを挙げてご教示願います。

    • ベストアンサー
    • Java
  • Javaにおけるメソッド名・ライン数取得に関して

    Javaの実行コンソールにて、メソッド名・ソースのライン数を出力させたいと思ってます。 C言語でいう、__func__や、__LINE__のように、 下記のように、System.out.println()内に埋め込み、それを出力させたいのです。(下記では、不明箇所をxxxとさせて頂いております。) <ソース-TestClass.java-> public void main(){ Test(); return; } private static void Test(){ System.out.println("メソッド名["+xxx+"] ライン["+ xxx +"]"); return; } <実行ターム> > java TestClass > メソッド名[Test] ライン[14] Javaではそういったメソッド名やライン数などの取得は困難なのでしょうか?または、そういったAPIは用意されておりますでしょうか? ご存じの方いらっしゃいましたら、ご教授お願い致します。

  • Javaで可変長メソッドから別の可変長を呼ぶには?

    Javaで以下のような二つの可変長メソッドがあるとして func1からfunc2を呼び出すにはどういう風にかけばいいのでしょうか? 可変長パラメーターを持つメソッドの書き方はググるといっぱい見つかるのですが 可変長から可変長を呼び出す方法がわかりませんでした。 public static String func1(Object...args){ } public static String func2(Object...args){ } ちなみにどちらも自作のメソッドで 処理をパーツ化するために別々のメソッドに分けたいです。 (それぞれ単独で使うこともあるので) 以上よろしくお願いいたします。

    • ベストアンサー
    • Java