動察 Beating AI 速報、Ghostty の作者 Mitchell Hashimoto が新しいターミナル Rex の拡張性テストを公開した。Rex は長期セッションとリモート接続を主軸とし、ターミナルタスクをバックグラウンドで継続的に実行させることができる。今回のテストでは、Rex は同時に 1 万のアクティブなターミナルセッションを維持し、メモリ使用量は約 3.8GB で、インタラクションも引き続き応答性を保てた。チームは当面これ以上上を目指したテストは行わず、次の目標は 10 万だ。
1 万を達成した後は、多くのオーバーヘッドはもはやターミナル自体によるものではない。最初のボトルネックは Linux のファイルディスクリプタテーブル、つまりシステムがプロセスの開いているファイルと接続を記録する場所から来ている。ターミナルセッションが約 5000 を超えると、新しいプロセスごとにこのテーブルだけで約 512KB を余分に占有するが、実際には約 4 つのファイルディスクリプタしか使っていない。Rex は現在、この部分の空間を実際に必要なサイズに縮小する C コードを追加している。
もう一つの問題はスレッドだ。Rex は以前、各アクティブなターミナルセッションがそれぞれ 1 つのスレッドを占有してデータを待つようにしていたが、規模が大きくなるとメモリオーバーヘッドが高すぎた。現在はターミナルが連続 2 秒間読み取り活動がないと、共有スレッドにまとめて監視を任せるようになっている。