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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
--- /home/matt/mc-dev-private//net/minecraft/server/MethodProfiler.java 2015-02-26 22:40:22.867608136 +0000
+++ src/main/java/net/minecraft/server/MethodProfiler.java 2015-02-26 22:40:22.871608136 +0000
@@ -10,130 +10,30 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+// CraftBukkit start - Strip down to empty methods, performance cost
public class MethodProfiler {
- private static final Logger b = LogManager.getLogger();
- private final List<String> c = Lists.newArrayList();
- private final List<Long> d = Lists.newArrayList();
public boolean a;
- private String e = "";
- private final Map<String, Long> f = Maps.newHashMap();
-
public MethodProfiler() {}
public void a() {
- this.f.clear();
- this.e = "";
- this.c.clear();
}
public void a(String s) {
- if (this.a) {
- if (this.e.length() > 0) {
- this.e = this.e + ".";
- }
-
- this.e = this.e + s;
- this.c.add(this.e);
- this.d.add(Long.valueOf(System.nanoTime()));
- }
}
public void b() {
- if (this.a) {
- long i = System.nanoTime();
- long j = ((Long) this.d.remove(this.d.size() - 1)).longValue();
-
- this.c.remove(this.c.size() - 1);
- long k = i - j;
-
- if (this.f.containsKey(this.e)) {
- this.f.put(this.e, Long.valueOf(((Long) this.f.get(this.e)).longValue() + k));
- } else {
- this.f.put(this.e, Long.valueOf(k));
- }
-
- if (k > 100000000L) {
- MethodProfiler.b.warn("Something\'s taking too long! \'" + this.e + "\' took aprox " + (double) k / 1000000.0D + " ms");
- }
-
- this.e = !this.c.isEmpty() ? (String) this.c.get(this.c.size() - 1) : "";
- }
}
public List<MethodProfiler.ProfilerInfo> b(String s) {
- if (!this.a) {
- return null;
- } else {
- long i = this.f.containsKey("root") ? ((Long) this.f.get("root")).longValue() : 0L;
- long j = this.f.containsKey(s) ? ((Long) this.f.get(s)).longValue() : -1L;
- ArrayList arraylist = Lists.newArrayList();
-
- if (s.length() > 0) {
- s = s + ".";
- }
-
- long k = 0L;
- Iterator iterator = this.f.keySet().iterator();
-
- while (iterator.hasNext()) {
- String s1 = (String) iterator.next();
-
- if (s1.length() > s.length() && s1.startsWith(s) && s1.indexOf(".", s.length() + 1) < 0) {
- k += ((Long) this.f.get(s1)).longValue();
- }
- }
-
- float f = (float) k;
-
- if (k < j) {
- k = j;
- }
-
- if (i < k) {
- i = k;
- }
-
- Iterator iterator1 = this.f.keySet().iterator();
-
- String s2;
-
- while (iterator1.hasNext()) {
- s2 = (String) iterator1.next();
- if (s2.length() > s.length() && s2.startsWith(s) && s2.indexOf(".", s.length() + 1) < 0) {
- long l = ((Long) this.f.get(s2)).longValue();
- double d0 = (double) l * 100.0D / (double) k;
- double d1 = (double) l * 100.0D / (double) i;
- String s3 = s2.substring(s.length());
-
- arraylist.add(new MethodProfiler.ProfilerInfo(s3, d0, d1));
- }
- }
-
- iterator1 = this.f.keySet().iterator();
-
- while (iterator1.hasNext()) {
- s2 = (String) iterator1.next();
- this.f.put(s2, Long.valueOf(((Long) this.f.get(s2)).longValue() * 999L / 1000L));
- }
-
- if ((float) k > f) {
- arraylist.add(new MethodProfiler.ProfilerInfo("unspecified", (double) ((float) k - f) * 100.0D / (double) k, (double) ((float) k - f) * 100.0D / (double) i));
- }
-
- Collections.sort(arraylist);
- arraylist.add(0, new MethodProfiler.ProfilerInfo(s, 100.0D, (double) k * 100.0D / (double) i));
- return arraylist;
- }
+ return null;
}
public void c(String s) {
- this.b();
- this.a(s);
}
public String c() {
- return this.c.size() == 0 ? "[UNKNOWN]" : (String) this.c.get(this.c.size() - 1);
+ return "";
}
public static final class ProfilerInfo implements Comparable<MethodProfiler.ProfilerInfo> {
@@ -152,7 +52,7 @@
return methodprofiler_profilerinfo.a < this.a ? -1 : (methodprofiler_profilerinfo.a > this.a ? 1 : methodprofiler_profilerinfo.c.compareTo(this.c));
}
- public int compareTo(Object object) {
+ public int compareTo(MethodProfiler.ProfilerInfo object) {
return this.a((MethodProfiler.ProfilerInfo) object);
}
}
|