package net.minecraft.server; // Paper - Remove this system - we have a more efficient Timings system /* class MethodProfiler { public static final boolean ENABLED = Boolean.getBoolean("enableDebugMethodProfiler"); // CraftBukkit - disable unless specified in JVM arguments 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() { if (!ENABLED) return; // CraftBukkit this.f.clear(); this.e = ""; this.c.clear(); } public void a(String s) { if (!ENABLED) return; // CraftBukkit 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 (!ENABLED) return; // CraftBukkit 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! \'{}\' took aprox {} ms", new Object[] { this.e, Double.valueOf((double) k / 1000000.0D)}); } this.e = this.c.isEmpty() ? "" : (String) this.c.get(this.c.size() - 1); } } public List<MethodProfiler.ProfilerInfo> b(String s) { if (!ENABLED || !this.a) { // CraftBukkit return Collections.emptyList(); } 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; } } public void c(String s) { if (!ENABLED) return; // CraftBukkit this.b(); this.a(s); } public String c() { if (!ENABLED) return "[DISABLED]"; // CraftBukkit return this.c.size() == 0 ? "[UNKNOWN]" : (String) this.c.get(this.c.size() - 1); } public static final class ProfilerInfo implements Comparable<MethodProfiler.ProfilerInfo> { public double a; public double b; public String c; public ProfilerInfo(String s, double d0, double d1) { this.c = s; this.a = d0; this.b = d1; } public int a(MethodProfiler.ProfilerInfo methodprofiler_profilerinfo) { return methodprofiler_profilerinfo.a < this.a ? -1 : (methodprofiler_profilerinfo.a > this.a ? 1 : methodprofiler_profilerinfo.c.compareTo(this.c)); } public int compareTo(MethodProfiler.ProfilerInfo object) { // CraftBukkit: decompile error return this.a((MethodProfiler.ProfilerInfo) object); } } } */ public class MethodProfiler { public boolean a; public MethodProfiler() {} public final void a() {} public final void a(String s) {} public final void b() {} public final void c(String s) {} public final String c() { return null; } }