3 ポイント 投稿者 GN⁺ 2024-04-09 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2024-04-09

Hacker Newsの意見

  • 最新のGNOME Terminalの入力遅延が1983年のApple //eコンピューターより短くなったのは成果だが、テスト環境が実際の使用環境とは異なる
    • テストはGNOME Shellではなく、最小構成の環境であるraw Mutterで実施された
    • キーボード遅延時間が含まれておらず、エンドツーエンド遅延の測定ではない(キーボード遅延は60msに達することもある)
    • デフォルト設定での実際のエンドツーエンド遅延は、より長いと予想される
  • モニター中央で測定したが、モニター上部と下部では8msの差が出る可能性がある(CRTのように上から下へピクセルが描画されるため)
  • モニター間の単純比較は難しい。ドライバーやプロファイルによって比較不可能な影響があるかもしれない
  • 写実的な3Dレンダリングが可能な時代に、ターミナルのテキスト出力の問題を解決しているのが皮肉だという意見
  • VTE開発者による性能向上の努力と、ハードウェアベースの遅延時間測定への取り組みが印象的だという意見
  • macOS Terminalのように、タブごとに履歴とスクロールバックを記憶するLinuxターミナルがあるかという質問
  • GNOMEを長く使ってきたが、sway+alacrittyに変えてから違いが分からないという意見
  • GNOME Terminalの初期ウィンドウサイズが小さいことと、サイズが保存されない問題への言及
  • xterm+i3wmを使っていても、より速いとは感じられず、GPUを使うalacrittyはオーバーキルだという意見
  • Mitchelle HashimotoのGhosttyターミナルもベンチマークに含まれるとよいという意見
  • 単純なcatテストではない今回のベンチマークは良く、より多様なターミナル、特にネイティブLinuxコンソールもテストしてほしいという意見