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.
- 1Aufwachen im Leerlauf, reine Anzeige-Pane98 % 64,0×
- 2Veröffentlichung beim Tastenecho, Pane 220×6095 % 20,0×
- 3Zeilentext lesen, Pane 220×6092 % 11,8×
- 4Aufwachen im Leerlauf, Shell am Prompt86 % 7,11×
- 5Publish-Gate bei tröpfelnder Ausgabe75 % 4,00×
- 6Durchsatz auf dem Korpus74 % 3,87×
- 7Basisschrift auflösen, pro Frame50 % 2,00×
- 8Veröffentlichung beim Scrollen, Pane 120×4050 % 1,98×
- 9Veröffentlichung beim Scrollen, Pane 220×6036 % 1,56×
- 10Layout-Durchlauf, Pane 220×609,9 % 1,11×
Terminal-Pipeline
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.
Alle Metriken
Baseline und neuester Lauf nebeneinander: Hauptwert, p95, wo die Metrik einen hat, und Allokationen pro Iteration.
| Metrik | Baseline | Neuester Lauf | Änderung | p95 | Alloc/Iter., Baseline | Alloc/Iter., neuester Lauf |
|---|---|---|---|---|---|---|
| Veröffentlichung beim Scrollen, Pane 220×60 | 700,7 µs | 448,0 µs | -36,1 % 1,56× | 863,6 µs → 465,7 µs | 2,70 MiB | 266 B |
| Veröffentlichung beim Tastenecho, Pane 220×60 | 166,0 µs | 8,3 µs | -95,0 % 20,0× | 196,2 µs → 8,6 µs | 1,41 MiB | 106 B |
| Veröffentlichung beim Scrollen, Pane 120×40 | 324,8 µs | 163,8 µs | -49,6 % 1,98× | 377,1 µs → 169,8 µs | 1,02 MiB | 242 B |
| Layout-Durchlauf, Pane 220×60 | 515,8 µs | 464,9 µs | -9,9 % 1,11× | 632,3 µs → 481,3 µs | 164,8 KiB | 164,8 KiB |
| Zeilentext lesen, Pane 220×60 | 7,1 µs | 600 ns | -91,5 % 11,8× | 9,1 µs → 600 ns | 4,3 KiB | 1,9 KiB |
| Basisschrift auflösen, pro Frame | 200 ns | 100 ns | -50,0 % 2,00× | 200 ns → 100 ns | 152 B | 0 B |
| Aktives Theme lesen, pro Frame | 100 ns | 100 ns | +0,0 % 1,00× | 100 ns → 100 ns | 0 B | 0 B |
| Publish-Gate bei tröpfelnder Ausgabe | 1.000 Frames pro 1.000 Chunks | 250 Frames pro 1.000 Chunks | -75,0 % 4,00× | k. A. | k. A. | k. A. |
| Durchsatz auf dem Korpus | 0,2 MiB/s | 0,9 MiB/s | +287,0 % 3,87× | k. A. | 1,52 MiB | 2,8 KiB |
| Aufwachen im Leerlauf, reine Anzeige-Pane | 64 Aufwachen/s | 1 Aufwachen/s | -98,4 % 64,0× | k. A. | k. A. | k. A. |
| Aufwachen im Leerlauf, Shell am Prompt | 64 Aufwachen/s | 9 Aufwachen/s | -85,9 % 7,11× | k. A. | k. A. | k. A. |
Weitere Suiten folgen, jede mit eigener committeter Baseline und archivierten Läufen, im selben Format.