- VTE(Virtual TErminal library)は、GNOMEのターミナルエミュレーターの基盤となるライブラリ。GNOME Terminal、Console、Black Box、Tilix、Terminator、Ptyxis などのアプリで使われており、Builder と Workbench の内蔵ターミナルでも使われている。
- GNOME 46 サイクルの間に VTE の性能は大きく向上した。この記事では、実際にどれほど性能が向上したのかを測定し、ユーザーの立場からどのような違いを感じられるのかを見ていく。
測定対象と方法
- ターミナルエミュレーターの性能を測定する方法はさまざまだが、この記事では入力遅延時間(Input Latency)に焦点を当てる。
- 入力遅延時間とは、キーボードを押した瞬間からモニターのピクセル色が変化するまでにかかる時間を意味する。入力遅延時間が低いアプリは反応が良く感じられ、入力遅延時間が高いアプリは遅く感じられることがある。
- 入力遅延時間を測定するために、ハードウェア入力遅延テスターを使用した。これは Teensy ボードに接続された照度センサーで構成されており、USB 経由でコンピューターに接続される。
入力遅延時間テスト結果
- 1つ目のテスト:
cat > /dev/null コマンドで入力フィールドを作り、Space キーを押したときにブロックカーソルが1セル右へ移動するまでの時間を測定
- VTE ターミナルは Fedora 39 と比べて Fedora 40 で大きく改善され、Alacritty とほぼ同等の水準まで向上した
- 2つ目のテスト: neovim で README ファイルを開き、Ctrl+D と Ctrl+U でテキストバッファをスクロールしながら測定
- こちらも GNOME 46 の VTE ターミナルが大きく改善され、Alacritty とほぼ同等の水準を示した
- Fedora 40 のすべてのターミナルを一度に比較した結果、neovim テストは cat テストより入力遅延時間が増加したが、すべてのターミナルで同程度に増加した
vtebench テスト結果
- Alacritty の vtebench テストスイートを同一環境で実行
- PTY の読み取りおよび解析性能を測定するテストで、VTE のクラッシュを見つけるのにも有用
- GNOME 46 の VTE は vtebench でも改善を示したが、Alacritty ほどではなかった
結論
- GNOME 46 では VTE の性能が大きく改善され、入力遅延時間は最速クラスのターミナルとほぼ同等の水準まで向上した
- 反応速度の遅さや入力遅延を理由に VTE ベースのターミナルを避けてきたなら、今なら再び試してみる価値がある(VTE 0.76 以上を推奨)
GN⁺の意見
- VTE ベースのターミナルの性能改善は非常に心強い。ユーザー体験の向上に大きく寄与しそうだ。
- 入力遅延時間の測定にハードウェアテスターを活用した点が興味深い。テスト手順や結果の解釈に関する詳しい説明も有益だった。
- macOS の標準ターミナルである Terminal.app や、Windows の新しいターミナルである Windows Terminal と比較してみるのも面白そうだ。
- VTE の性能改善は GNOME エコシステム全体に前向きな影響を与えると期待される。ただし、まだ改善の余地がある部分(アクセシビリティ、スクロールバーなど)もありそうだ。
- Linux デスクトップユーザーにとっては非常にうれしいニュース。さまざまなターミナルエミュレーターが VTE の改善を土台に、さらに発展していくことを期待したい。
1件のコメント
Hacker Newsの意見