TraceTimer.java
1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
* Decompiled with CFR 0_118.
*/
package com.adobe.xfa.ut.trace;
import com.adobe.xfa.ut.trace.TraceHandler;
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadMXBean;
public final class TraceTimer {
private final TraceHandler.TimingType meType;
private long mnStart;
private static final boolean gUseCpuTime;
private static final ThreadMXBean gBean;
public TraceTimer(TraceHandler.TimingType eType) {
this.meType = eType;
if (TraceHandler.timingTraceEnabled()) {
this.doStartTimer();
}
}
public void startTiming() {
if (TraceHandler.timingTraceEnabled()) {
this.doStartTimer();
}
}
public void stopTiming() {
if (TraceHandler.timingTraceEnabled()) {
this.doStopTimer();
}
}
private void doStartTimer() {
assert (this.mnStart == 0);
this.mnStart = TraceTimer.getNanos();
}
private void doStopTimer() {
if (this.mnStart != 0) {
TraceHandler.addTimerNanos(this.meType, TraceTimer.getNanos() - this.mnStart);
this.mnStart = 0;
}
}
private static long getNanos() {
return gUseCpuTime ? gBean.getCurrentThreadCpuTime() : System.nanoTime();
}
static {
boolean useCpuTime;
boolean bl = useCpuTime = System.getProperty("test.use.cputime") != null;
if (useCpuTime) {
gBean = ManagementFactory.getThreadMXBean();
if (!gBean.isCurrentThreadCpuTimeSupported()) {
useCpuTime = false;
}
} else {
gBean = null;
}
gUseCpuTime = useCpuTime;
}
}