SSブログ

StackTraceから情報を取得する時間@Java [Java]

前回は、log4jのログ出力にファイル名や行番号を出力する場合にどれだけ遅いのかを計測してみたのですが、今回はStackTraceから情報を取得するのはどれだけの時間がかかるのかを計測していました。

計測環境は前と同じ。
CPU:Intel(R) Core(TM) i7-2600K CPU @ 3.40GHZ
MEMORY:12.0GB
OS:Windows8 Pro(64ビット)
HDD:SSD(Crucial Real SSD C300)


StackTraceから行番号を取得してみました。
public class StackTraceTest {
  public static void main(String[] args) {
    int num = 0;
    long t1 = 0L;
    long t2 = 0L;

    t1 = System.nanoTime();
    num = Thread.currentThread().getStackTrace()[0].getLineNumber();
    t2 = System.nanoTime();

    System.out.println(num + ":" + (t2-t1) + " [nsec]");
  }
}

結果は、10回実行してみて、その平均をとってみました。
11:101165 [nsec]
11:150998 [nsec]
11:102065 [nsec]
11:92760 [nsec]
11:93360 [nsec]
11:86155 [nsec]
11:90058 [nsec]
11:123680 [nsec]
11:105068 [nsec]
11:88857 [nsec]
※平均103μsec

これも、遅いといえば遅いように思いますが、絶対時間として遅いかといえばそうでもないような。
やっぱり、遅いとみるか早いとみるかは実装するアプリケーションによりますね。
以上、参考まで。
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。