提交 17dfbe4f authored 作者: Thomas Mueller's avatar Thomas Mueller

Profiler: show total time used.

上级 e72c4f4a
...@@ -36,6 +36,7 @@ public class Profiler implements Runnable { ...@@ -36,6 +36,7 @@ public class Profiler implements Runnable {
private int minCount = 1; private int minCount = 1;
private int total; private int total;
private Thread thread; private Thread thread;
private long time;
/** /**
* Start collecting profiling data. * Start collecting profiling data.
...@@ -52,9 +53,15 @@ public class Profiler implements Runnable { ...@@ -52,9 +53,15 @@ public class Profiler implements Runnable {
*/ */
public void stopCollecting() { public void stopCollecting() {
stop = true; stop = true;
try {
thread.join();
} catch (InterruptedException e) {
// ignore
}
} }
public void run() { public void run() {
time = System.currentTimeMillis();
while (!stop) { while (!stop) {
try { try {
tick(); tick();
...@@ -62,6 +69,7 @@ public class Profiler implements Runnable { ...@@ -62,6 +69,7 @@ public class Profiler implements Runnable {
break; break;
} }
} }
time = System.currentTimeMillis() - time;
} }
private void tick() { private void tick() {
...@@ -145,7 +153,8 @@ public class Profiler implements Runnable { ...@@ -145,7 +153,8 @@ public class Profiler implements Runnable {
*/ */
public String getTop(int max) { public String getTop(int max) {
StringBuilder buff = new StringBuilder(); StringBuilder buff = new StringBuilder();
buff.append("Profiler: top ").append(max).append(" stack trace(s) [build-").append(Constants.BUILD_ID).append("]\n"); buff.append("Profiler: top ").append(max).append(" stack trace(s) of ").append(time).
append(" ms [build-").append(Constants.BUILD_ID).append("]\n");
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
Map.Entry<String, Integer>[] array = new Map.Entry[counts.size()]; Map.Entry<String, Integer>[] array = new Map.Entry[counts.size()];
counts.entrySet().toArray(array); counts.entrySet().toArray(array);
...@@ -165,6 +174,7 @@ public class Profiler implements Runnable { ...@@ -165,6 +174,7 @@ public class Profiler implements Runnable {
buff.append(el.getValue()).append('/').append(total). buff.append(el.getValue()).append('/').append(total).
append('\n').append(el.getKey()); append('\n').append(el.getKey());
} }
buff.append('.');
return buff.toString(); return buff.toString();
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论