improve data output

This commit is contained in:
dfsek
2021-04-11 23:08:32 -07:00
parent 40188c671f
commit 5d4bdb431b
4 changed files with 10 additions and 9 deletions

View File

@@ -12,6 +12,7 @@ import com.dfsek.terra.api.util.logging.Logger;
import com.dfsek.terra.config.PluginConfig;
import com.dfsek.terra.config.lang.Language;
import com.dfsek.terra.config.pack.ConfigPack;
import com.dfsek.terra.profiler.Profiler;
import com.dfsek.terra.world.TerraWorld;
import java.io.File;
@@ -64,4 +65,6 @@ public interface TerraPlugin extends LoaderRegistrar {
default void runPossiblyUnsafeTask(Runnable task) {
task.run();
}
Profiler getProfiler();
}

View File

@@ -5,10 +5,6 @@ import java.util.Map;
public interface Profiler {
ProfilerImpl INSTANCE = new ProfilerImpl();
static Profiler getInstance() {
return INSTANCE;
}
void push(String frame);
void pop(String frame);

View File

@@ -15,7 +15,7 @@ public class ProfilerImpl implements Profiler {
private volatile boolean running = false;
protected ProfilerImpl() {
public ProfilerImpl() {
}

View File

@@ -34,23 +34,25 @@ public class Timings {
return subItems.computeIfAbsent(id, s -> new Timings());
}
public String toString(int indent) {
public String toString(int indent, Timings parent) {
StringBuilder builder = new StringBuilder();
builder.append("Avg ").append(average() / 1000000).append("ms");
builder.append((double) min() / 1000000).append("ms min / ").append(average() / 1000000).append("ms avg / ")
.append((double) max() / 1000000).append("ms max (").append(timings.size()).append(" samples, ")
.append((average() / parent.average()) * 100).append("% of parent)");
subItems.forEach((id, timings) -> {
builder.append('\n');
for(int i = 0; i <= indent; i++) {
builder.append('\t');
}
builder.append(id).append(": ").append(timings.toString(indent + 1));
builder.append(id).append(": ").append(timings.toString(indent + 1, this));
});
return builder.toString();
}
@Override
public String toString() {
return toString(0);
return toString(0, this);
}
}