Bench
Paneflow はパフォーマンス改善を形容詞ではなく数値で示します。以下の各スイートは、コミット済みのベースラインと最新コミットを同じマシンで、リポジトリ内のスクリプトから実行しています。まずはターミナルパイプラインから。スイートは今後追加していきます。
ターミナルパイプラインcb05be20
メトリクス削減
- 1アイドル時のウェイクアップ、表示専用ペイン98 % 64.0×
- 2キー入力エコー時の公開、220×60 ペイン95 % 20.0×
- 3行テキストの取得、220×60 ペイン92 % 11.8×
- 4アイドル時のウェイクアップ、プロンプト待ちのシェル86 % 7.11×
- 5断続的な出力に対する公開ゲート75 % 4.00×
- 6コーパスのスループット74 % 3.87×
- 7基本フォントの解決、フレームごと50 % 2.00×
- 8スクロール時の公開、120×40 ペイン50 % 1.98×
- 9スクロール時の公開、220×60 ペイン36 % 1.56×
- 10レイアウトパス、220×60 ペイン9.9 % 1.11×
ターミナルパイプライン
PTY のバイト列からレンダラーが描画するレイアウトまで。スクロール時とキー入力エコー時のスナップショットとグリッド変換、ウィンドウなしのレイアウトパス、レンダースレッドが毎フレーム行う参照、断続的な出力に対する公開ペーシング、コーパスのスループット、アイドル状態のペインが起きる頻度を計測します。時間は release プロファイルでの中央値、アロケーション数は正確な値です。
すべてのメトリクス
ベースラインと最新を並べて表示します。代表値、p95 がある場合はその値、反復ごとのアロケーション。
| メトリクス | ベースライン | 最新 | 変化 | p95 | 反復あたりアロケーション、ベースライン | 反復あたりアロケーション、最新 |
|---|---|---|---|---|---|---|
| スクロール時の公開、220×60 ペイン | 700.7 µs | 448.0 µs | -36.1 % 1.56× | 863.6 µs → 465.7 µs | 2.70 MiB | 266 B |
| キー入力エコー時の公開、220×60 ペイン | 166.0 µs | 8.3 µs | -95.0 % 20.0× | 196.2 µs → 8.6 µs | 1.41 MiB | 106 B |
| スクロール時の公開、120×40 ペイン | 324.8 µs | 163.8 µs | -49.6 % 1.98× | 377.1 µs → 169.8 µs | 1.02 MiB | 242 B |
| レイアウトパス、220×60 ペイン | 515.8 µs | 464.9 µs | -9.9 % 1.11× | 632.3 µs → 481.3 µs | 164.8 KiB | 164.8 KiB |
| 行テキストの取得、220×60 ペイン | 7.1 µs | 600 ns | -91.5 % 11.8× | 9.1 µs → 600 ns | 4.3 KiB | 1.9 KiB |
| 基本フォントの解決、フレームごと | 200 ns | 100 ns | -50.0 % 2.00× | 200 ns → 100 ns | 152 B | 0 B |
| アクティブテーマの読み取り、フレームごと | 100 ns | 100 ns | +0.0 % 1.00× | 100 ns → 100 ns | 0 B | 0 B |
| 断続的な出力に対する公開ゲート | 1,000 フレーム / 1,000 チャンク | 250 フレーム / 1,000 チャンク | -75.0 % 4.00× | 該当なし | 該当なし | 該当なし |
| コーパスのスループット | 0.2 MiB/s | 0.9 MiB/s | +287.0 % 3.87× | 該当なし | 1.52 MiB | 2.8 KiB |
| アイドル時のウェイクアップ、表示専用ペイン | 64 回/秒 | 1 回/秒 | -98.4 % 64.0× | 該当なし | 該当なし | 該当なし |
| アイドル時のウェイクアップ、プロンプト待ちのシェル | 64 回/秒 | 9 回/秒 | -85.9 % 7.11× | 該当なし | 該当なし | 該当なし |
スイートは今後追加していきます。それぞれにコミット済みのベースラインと保存済みの実行結果を、同じ形式で添えます。