Ghostty 作者 Mitchell Hashimoto 公布了新终端 Rex 的扩展性测试结果。Rex 主打长期会话和远程连接,支持把终端任务留在后台持续运行。
测试中,Rex 同时维持 1 万个活跃终端会话,内存占用约 3.8GB,交互仍能保持响应。团队暂时没有继续向上测试,下一目标是 10 万个。
测试暴露出的两个瓶颈
Mitchell Hashimoto 表示,做到 1 万个会话后,很多开销已经不是终端本身造成的。
第一处瓶颈来自 Linux 的文件描述符表,也就是系统记录进程打开文件和连接的位置。终端会话超过约 5000 个后,每新增一个进程,这张表就会多占约 512KB,但实际只用了约 4 个文件描述符。Rex 目前加入了一段 C 代码,把这部分空间缩回到实际需要的大小。
另一个问题是线程。Rex 过去会让每个活跃终端会话各占一个线程等待数据,规模扩大后,内存开销变得很高。现在如果终端连续 2 秒没有读取活动,就会交给一个共享线程统一监听。
本文最初由 Bit.Fan 发布。 欲了解更多加密货币新闻与市场洞察,请访问 www.bit.fan.

