• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

自分のプロジェクトで利用するための汎用Javaライブラリ


Commit MetaInfo

修订版e7115e74fca98117b64e8c604ec509960d6c8cdf (tree)
时间2014-02-15 00:09:58
作者nkoseki <nykoseki@gmai...>
Commiternkoseki

Log Message

シンプルなプロファイラの追加

更改概述

差异

Binary files a/bin/org/dyndns/nuda/dynamic/compiler/ClassFileManager$Loader.class and b/bin/org/dyndns/nuda/dynamic/compiler/ClassFileManager$Loader.class differ
Binary files /dev/null and b/bin/org/dyndns/nuda/profile/SimpleProfiler$1.class differ
Binary files /dev/null and b/bin/org/dyndns/nuda/profile/SimpleProfiler.class differ
Binary files a/bin/org/dyndns/nuda/tools/util/ReflectUtil$PREFIX.class and b/bin/org/dyndns/nuda/tools/util/ReflectUtil$PREFIX.class differ
--- /dev/null
+++ b/src/org/dyndns/nuda/profile/SimpleProfiler.java
@@ -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+}