diff --git a/src/main/java/com/gregor/jprototerm/RenderProfiler.java b/src/main/java/com/gregor/jprototerm/RenderProfiler.java index 28e5f64..a8cf863 100644 --- a/src/main/java/com/gregor/jprototerm/RenderProfiler.java +++ b/src/main/java/com/gregor/jprototerm/RenderProfiler.java @@ -18,8 +18,11 @@ final class RenderProfiler { static final int FINGERPRINT = 1; static final int DRAW = 2; static final int FRAME = 3; - private static final int BUCKETS = 4; - private static final String[] NAMES = {"snapshot", "fingerprint", "draw", "frame-total"}; + static final int UPDATE = 4; + static final int MARSHAL = 5; + private static final int BUCKETS = 6; + private static final String[] NAMES = + {"snapshot", "fingerprint", "draw", "frame-total", "update", "marshal"}; private static final boolean ENABLED = Boolean.getBoolean("jprototerm.profile") || "1".equals(System.getenv("JPROTOTERM_PROFILE")); diff --git a/src/main/java/com/gregor/jprototerm/TerminalPane.java b/src/main/java/com/gregor/jprototerm/TerminalPane.java index ac3318e..5f364bd 100644 --- a/src/main/java/com/gregor/jprototerm/TerminalPane.java +++ b/src/main/java/com/gregor/jprototerm/TerminalPane.java @@ -160,13 +160,21 @@ public final class TerminalPane implements AutoCloseable { synchronized (terminal) { long version = contentVersion.get(); if (full) { + long updateStart = RenderProfiler.start(); renderState.update(terminal); + RenderProfiler.stop(RenderProfiler.UPDATE, updateStart); + long marshalStart = RenderProfiler.start(); cachedSnapshot = renderState.snapshot(); + RenderProfiler.stop(RenderProfiler.MARSHAL, marshalStart); renderState.resetDirty(); snapshotVersion = version; } else if (snapshotVersion != version) { + long updateStart = RenderProfiler.start(); renderState.update(terminal); + RenderProfiler.stop(RenderProfiler.UPDATE, updateStart); + long marshalStart = RenderProfiler.start(); cachedSnapshot = renderState.snapshotIncremental(); + RenderProfiler.stop(RenderProfiler.MARSHAL, marshalStart); renderState.resetDirty(); snapshotVersion = version; }