Roberto Lublinerman has uploaded a new change for review.
https://gwt-review.googlesource.com/2031
Change subject: Fix SpeedTracer Log when compilation is spread across
different processes.
..
Fix SpeedTracer Log when compilation is spread across different processes.
The common time referrence recorded in baseTime was not correct.
Change-Id: If91008cd75c187dff667adc2411f60d4dadabbe3
---
M
dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java
1 file changed, 13 insertions(+), 25 deletions(-)
diff --git
a/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java
b/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java
index 0866fcf..fa5730a 100644
---
a/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java
+++
b/dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java
@@ -145,7 +145,7 @@
this.children = Lists.create();
this.devModeSession = session;
}
-
+
/**
* @param data key/value pairs to add to JSON object.
*/
@@ -395,19 +395,13 @@
private class ElapsedNormalizedTimeKeeper {
private final long zeroTimeNanos;
-private final long zeroTimeMillis;
public ElapsedNormalizedTimeKeeper() {
zeroTimeNanos = System.nanoTime();
- zeroTimeMillis = (long) convertToMilliseconds(zeroTimeNanos);
}
public long normalizedTimeNanos() {
return System.nanoTime() - zeroTimeNanos;
-}
-
-public long zeroTimeMillis() {
- return zeroTimeMillis;
}
}
@@ -419,8 +413,7 @@
private final OperatingSystemMXBean osMXBean;
private final Method getProcessCpuTimeMethod;
private final long zeroTimeNanos;
-private final long zeroTimeMillis;
-
+
public ProcessNormalizedTimeKeeper() {
try {
osMXBean = ManagementFactory.getOperatingSystemMXBean();
@@ -433,7 +426,6 @@
osMXBean.getClass().getMethod(getProcessCpuTime);
getProcessCpuTimeMethod.setAccessible(true);
zeroTimeNanos = (Long) getProcessCpuTimeMethod.invoke(osMXBean);
-zeroTimeMillis = (long) convertToMilliseconds(zeroTimeNanos);
} catch (Exception ex) {
throw new RuntimeException(ex);
}
@@ -445,10 +437,6 @@
} catch (Exception ex) {
throw new RuntimeException(ex);
}
-}
-
-public long zeroTimeMillis() {
- return zeroTimeMillis;
}
}
@@ -467,7 +455,6 @@
private final ThreadMXBean threadMXBean;
private final ThreadLocalLong resettableTimeBase = new
ThreadLocalLong();
private final long zeroTimeNanos;
-private final long zeroTimeMillis;
public ThreadNormalizedTimeKeeper() {
threadMXBean = ManagementFactory.getThreadMXBean();
@@ -475,7 +462,6 @@
throw new RuntimeException(Current thread cpu time not
supported);
}
zeroTimeNanos = System.nanoTime();
- zeroTimeMillis = (long) convertToMilliseconds(zeroTimeNanos);
}
public long normalizedTimeNanos() {
@@ -490,11 +476,7 @@
resettableTimeBase.set(System.nanoTime()
- zeroTimeNanos - threadMXBean.getCurrentThreadCpuTime());
}
-
-public long zeroTimeMillis() {
- return zeroTimeMillis;
-}
- }
+ }
/**
* Initializes the singleton on demand.
@@ -714,6 +696,15 @@
(logThreadCpuTime) ? new ThreadNormalizedTimeKeeper() : null;
/**
+ * Time in millis since the start of this process. To be used when
merging timelines
+ * created by different processes.
+ *
+ * Do not use nanoTime since it is not related to any fixed moment in
time and
+ * hence can not be used for merging timelines from different processes.
+ */
+ private final long baseTimeMillis = System.currentTimeMillis();
+
+ /**
* Constructor intended for unit testing.
*
* @param writer alternative {@link Writer} to send speed tracer output.
@@ -917,10 +908,7 @@
// Add a field to the top level event in order to track the base time
// so we can re-normalize the data
if (threadPendingEvents.size() == 0) {
- long baseTime = logProcessCpuTime ?
processCpuTimeKeeper.zeroTimeMillis()
- : (logThreadCpuTime ? threadCpuTimeKeeper.zeroTimeMillis()
- : elapsedTimeKeeper.zeroTimeMillis());
- newEvent.addData(baseTime, + baseTime);
+ newEvent.addData(baseTime, + baseTimeMillis);
}
threadPendingEvents.push(newEvent);
return newEvent;
--
To view, visit https://gwt-review.googlesource.com/2031
To unsubscribe, visit https://gwt-review.googlesource.com/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If91008cd75c187dff667adc2411f60d4dadabbe3
Gerrit-PatchSet: 1
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Roberto Lublinerman rlu...@google.com
--
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
---
You