Zum Inhalt springen

Bench

Paneflow liefert Performance-Arbeit mit Zahlen statt Adjektiven. Jede Suite unten läuft auf einer committeten Baseline und auf dem neuesten Commit, auf derselben Maschine, über ein Skript aus dem Repository. Die Terminal-Pipeline macht den Anfang, weitere Suiten folgen.

Terminal-Pipelineneuester Lauf gegen Baseline

64× weniger Aufwachvorgänge bei einem inaktiven Pane. Tastenecho 20× schneller veröffentlicht.

  1. Baseline-Lauf4066faf01.09.2026, 20:42
  2. Lauf 10202d3901.09.2026, 20:49
  3. Neuester Lauf488661301.09.2026, 21:38
Maschine
AMD Ryzen 7 7800X3D, Windows 11, release profile
Skript
scripts/bench-terminal.sh
Gemessene Commits
e03972c5, 15d7fa5f

Rangliste

MetrikEingespart
  1. 1Aufwachen im Leerlauf, reine Anzeige-Pane98 % 64,0×
  2. 2Veröffentlichung beim Tastenecho, Pane 220×6095 % 20,0×
  3. 3Zeilentext lesen, Pane 220×6092 % 11,8×
  4. 4Aufwachen im Leerlauf, Shell am Prompt86 % 7,11×
  5. 5Publish-Gate bei tröpfelnder Ausgabe, pro 1k Chunks75 % 4,00×
  6. 6Durchsatz auf dem Korpus74 % 3,87×
  7. 7Basisschrift auflösen, pro Frame50 % 2,00×
  8. 8Veröffentlichung beim Scrollen, Pane 120×4050 % 1,98×
  9. 9Veröffentlichung beim Scrollen, Pane 220×6036 % 1,56×
  10. 10Layout-Durchlauf, Pane 220×609,9 % 1,11×
Abbildung 1. Anteil der Baseline-Kosten, den der neueste Lauf je Metrik entfernt, gegen die committete Baseline. Zeiten sind Mediane im Release-Profil, Allokationszahlen sind exakt. AMD Ryzen 7 7800X3D, Windows 11, release profile.

Alle Metriken

Von den PTY-Bytes bis zum Layout, das der Renderer zeichnet: Snapshot und Grid-Konvertierung beim Scrollen und beim Tastenecho, der fensterlose Layout-Durchlauf, die Lookups des Render-Threads in jedem Frame, das Publish-Pacing bei tröpfelnder Ausgabe, der Durchsatz auf dem Korpus und wie oft eine leerlaufende Pane aufwacht. Zeiten sind Mediane im Release-Profil, Allokationszahlen sind exakt.

In jeder Zelle steht die Baseline über dem neuesten Lauf: Hauptwert, p95, wo die Metrik einen hat, und Allokationen pro Iteration.

MetrikWertÄnderungp95Alloc/Iter.
Veröffentlichung beim Scrollen, Pane 220×60Baseline 700,7 µsNeuester Lauf 448,0 µs-36,1 %1,56×Baseline 863,6 µsNeuester Lauf 465,7 µsBaseline 2,70 MiBNeuester Lauf 266 B
Veröffentlichung beim Tastenecho, Pane 220×60Baseline 166,0 µsNeuester Lauf 8,3 µs-95,0 %20,0×Baseline 196,2 µsNeuester Lauf 8,6 µsBaseline 1,41 MiBNeuester Lauf 106 B
Veröffentlichung beim Scrollen, Pane 120×40Baseline 324,8 µsNeuester Lauf 163,8 µs-49,6 %1,98×Baseline 377,1 µsNeuester Lauf 169,8 µsBaseline 1,02 MiBNeuester Lauf 242 B
Layout-Durchlauf, Pane 220×60Baseline 515,8 µsNeuester Lauf 464,9 µs-9,9 %1,11×Baseline 632,3 µsNeuester Lauf 481,3 µsBaseline 164,8 KiBNeuester Lauf 164,8 KiB
Zeilentext lesen, Pane 220×60Baseline 7,1 µsNeuester Lauf 600 ns-91,5 %11,8×Baseline 9,1 µsNeuester Lauf 600 nsBaseline 4,3 KiBNeuester Lauf 1,9 KiB
Basisschrift auflösen, pro FrameBaseline 200 nsNeuester Lauf 100 ns-50,0 %2,00×Baseline 200 nsNeuester Lauf 100 nsBaseline 152 BNeuester Lauf 0 B
Aktives Theme lesen, pro FrameBaseline 100 nsNeuester Lauf 100 ns+0,0 %1,00×Baseline 100 nsNeuester Lauf 100 nsBaseline 0 BNeuester Lauf 0 B
Publish-Gate bei tröpfelnder Ausgabe, pro 1k ChunksBaseline 1k FramesNeuester Lauf 250 Frames-75,0 %4,00×k. A.k. A.
Durchsatz auf dem KorpusBaseline 0,2 MiB/sNeuester Lauf 0,9 MiB/s+287,0 %3,87×k. A.Baseline 1,52 MiBNeuester Lauf 2,8 KiB
Aufwachen im Leerlauf, reine Anzeige-PaneBaseline 64 Aufwachen/sNeuester Lauf 1 Aufwachen/s-98,4 %64,0×k. A.k. A.
Aufwachen im Leerlauf, Shell am PromptBaseline 64 Aufwachen/sNeuester Lauf 9 Aufwachen/s-85,9 %7,11×k. A.k. A.