动察 Beating ข่าวด่วน AI ผู้เขียน Ghostty อย่าง Mitchell Hashimoto เปิดเผยผลการทดสอบความสามารถในการขยายตัวของเทอร์มินัลใหม่ Rex โดย Rex เน้นเซสชันระยะยาวและการเชื่อมต่อระยะไกล สามารถปล่อยให้งานเทอร์มินัลทำงานต่อในเบื้องหลังได้ ในการทดสอบครั้งนี้ Rex รักษาเซสชันเทอร์มินัลที่ใช้งานอยู่พร้อมกัน 10,000 เซสชัน ใช้หน่วยความจำประมาณ 3.8GB และยังคงตอบสนองได้ดี ทีมยังไม่ได้ทดสอบเพิ่มขึ้นไปอีก เป้าหมายต่อไปคือ 100,000
หลังจากทำได้ถึง 10,000 แล้ว ค่าใช้จ่ายจำนวนมากไม่ได้เกิดจากตัวเทอร์มินัลเองอีกต่อไป คอขวดจุดแรกมาจากตาราง file descriptor ของ Linux ซึ่งเป็นที่ที่ระบบบันทึกไฟล์และการเชื่อมต่อที่โปรเซสเปิดไว้ หลังจากเซสชันเทอร์มินัลเกินประมาณ 5,000 เซสชัน โปรเซสใหม่แต่ละตัวจะใช้พื้นที่ตารางนี้เพิ่มประมาณ 512KB แต่จริงๆ ใช้เพียงประมาณ 4 file descriptor เท่านั้น ตอนนี้ Rex ได้เพิ่มโค้ด C ส่วนหนึ่งเพื่อลดพื้นที่ส่วนนี้กลับไปเหลือขนาดที่จำเป็นจริงๆ
อีกปัญหาหนึ่งคือเธรด ในอดีต Rex จะให้เซสชันเทอร์มินัลที่ใช้งานอยู่แต่ละเซสชันใช้หนึ่งเธรดรอข้อมูล เมื่อขนาดเพิ่มขึ้น ค่าใช้จ่ายหน่วยความจำก็สูงเกินไป ตอนนี้หากเทอร์มินัลไม่มีการอ่านข้อมูลต่อเนื่อง 2 วินาที จะมอบให้เธรดที่ใช้ร่วมกันคอยตรวจสอบแทน
