StackTraceから情報を取得する時間@Java [Java]
前回は、log4jのログ出力にファイル名や行番号を出力する場合にどれだけ遅いのかを計測してみたのですが、今回はStackTraceから情報を取得するのはどれだけの時間がかかるのかを計測していました。
計測環境は前と同じ。
StackTraceから行番号を取得してみました。
結果は、10回実行してみて、その平均をとってみました。
これも、遅いといえば遅いように思いますが、絶対時間として遅いかといえばそうでもないような。
やっぱり、遅いとみるか早いとみるかは実装するアプリケーションによりますね。
以上、参考まで。
計測環境は前と同じ。
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
これも、遅いといえば遅いように思いますが、絶対時間として遅いかといえばそうでもないような。
やっぱり、遅いとみるか早いとみるかは実装するアプリケーションによりますね。
以上、参考まで。
2013-06-16 01:12
nice!(0)
コメント(0)
トラックバック(0)
コメント 0