自分のプロジェクトで利用するための汎用Javaライブラリ
修订版 | e7115e74fca98117b64e8c604ec509960d6c8cdf (tree) |
---|---|
时间 | 2014-02-15 00:09:58 |
作者 | nkoseki <nykoseki@gmai...> |
Commiter | nkoseki |
シンプルなプロファイラの追加
@@ -0,0 +1,38 @@ | ||
1 | +package org.dyndns.nuda.profile; | |
2 | + | |
3 | +import org.dyndns.nuda.tools.util.StringUtil; | |
4 | + | |
5 | +/** | |
6 | + * シンプルなプロファイラです | |
7 | + * | |
8 | + * @author nkoseki | |
9 | + * | |
10 | + */ | |
11 | +public class SimpleProfiler { | |
12 | + | |
13 | + /** | |
14 | + * アプリケーションの開始から終了までのJavaヒープ領域の空きメモリサイズとターンアラウンド時間を計測し, 結果を | |
15 | + * 標準出力へ出力します. <br /> | |
16 | + */ | |
17 | + public static void reserveProfiler() { | |
18 | + final long freeMem = Runtime.getRuntime().freeMemory(); | |
19 | + final long time = System.currentTimeMillis(); | |
20 | + Runtime.getRuntime().addShutdownHook(new Thread() { | |
21 | + | |
22 | + @Override | |
23 | + public void run() { | |
24 | + long freeMemResult = Runtime.getRuntime().freeMemory(); | |
25 | + long endTime = System.currentTimeMillis() - time; | |
26 | + String message = | |
27 | + StringUtil.format( | |
28 | + "before[{}] after[{}] diff[{}] time[{} s]", | |
29 | + freeMem, | |
30 | + freeMemResult, | |
31 | + freeMem - freeMemResult, | |
32 | + ((double) endTime / 1000)); | |
33 | + System.out.println(message); | |
34 | + } | |
35 | + | |
36 | + }); | |
37 | + } | |
38 | +} |