3 điểm bởi GN⁺ 2024-04-09 | 1 bình luận | Chia sẻ qua WhatsApp
  • VTE (thư viện Virtual TErminal) là thư viện nền tảng cho các trình giả lập terminal của GNOME. Nó được dùng trong các ứng dụng như GNOME Terminal, Console, Black Box, Tilix, Terminator, Ptyxis, và cả terminal tích hợp của Builder và Workbench.
  • Trong chu kỳ GNOME 46, hiệu năng của VTE đã được cải thiện đáng kể. Bài viết này đo lường mức cải thiện hiệu năng thực tế và xem xét người dùng sẽ cảm nhận khác biệt ra sao.

Đối tượng và phương pháp đo

  • Có nhiều cách để đo hiệu năng của trình giả lập terminal, nhưng bài viết này tập trung vào độ trễ đầu vào (Input Latency).
  • Độ trễ đầu vào là thời gian từ lúc nhấn bàn phím cho đến khi màu pixel trên màn hình thay đổi. Ứng dụng có độ trễ đầu vào thấp sẽ cho cảm giác phản hồi tốt, còn ứng dụng có độ trễ đầu vào cao có thể cho cảm giác chậm.
  • Để đo độ trễ đầu vào, tác giả sử dụng thiết bị kiểm tra độ trễ đầu vào bằng phần cứng. Thiết bị này gồm một cảm biến ánh sáng nối với bo mạch Teensy và được kết nối với máy tính qua USB.

Kết quả kiểm tra độ trễ đầu vào

  • Bài kiểm tra thứ nhất: tạo một trường nhập bằng lệnh cat > /dev/null rồi đo thời gian con trỏ khối di chuyển sang phải một ô khi nhấn phím Space
    • Các terminal dùng VTE trên Fedora 40 đã được cải thiện lớn so với Fedora 39, gần đạt ngang mức với Alacritty
  • Bài kiểm tra thứ hai: mở tệp README trong neovim rồi đo trong lúc cuộn bộ đệm văn bản bằng Ctrl+D và Ctrl+U
    • Một lần nữa, các terminal VTE của GNOME 46 được cải thiện mạnh và cho thấy mức gần tương đương với Alacritty
  • Kết quả so sánh tất cả terminal trên Fedora 40 cùng lúc cho thấy trong bài kiểm tra neovim, độ trễ đầu vào tăng hơn so với bài kiểm tra cat, nhưng mức tăng là tương tự nhau trên mọi terminal

Kết quả kiểm tra vtebench

  • Chạy bộ kiểm thử vtebench của Alacritty trong cùng một môi trường
  • Đây là bài kiểm tra đo hiệu năng đọc và phân tích PTY, đồng thời cũng hữu ích để tìm lỗi crash của VTE
  • VTE của GNOME 46 cũng cho thấy cải thiện trong vtebench, nhưng vẫn chưa bằng Alacritty

Kết luận

  • Trong GNOME 46, hiệu năng VTE đã được cải thiện lớn, giúp độ trễ đầu vào gần đạt mức của những terminal nhanh nhất
  • Nếu trước đây bạn tránh các terminal dựa trên VTE vì phản hồi chậm và độ trễ đầu vào cao, thì giờ đã đáng để thử lại (khuyến nghị VTE phiên bản 0.76 trở lên)

Ý kiến của GN⁺

  • Việc cải thiện hiệu năng của các terminal dựa trên VTE là tín hiệu rất đáng khích lệ. Có vẻ điều này sẽ đóng góp lớn vào việc nâng cao trải nghiệm người dùng.
  • Việc dùng thiết bị phần cứng để đo độ trễ đầu vào là một điểm thú vị. Phần giải thích chi tiết về quá trình kiểm thử và cách diễn giải kết quả cũng rất hữu ích.
  • Sẽ rất thú vị nếu so sánh thêm với Terminal.app, terminal mặc định của macOS, hoặc Windows Terminal, terminal mới của Windows.
  • Dự kiến việc cải thiện hiệu năng của VTE sẽ tạo tác động tích cực lên toàn bộ hệ sinh thái GNOME. Tuy vậy, dường như vẫn còn những phần có thể cải thiện thêm (khả năng truy cập, thanh cuộn, v.v.).
  • Đây là tin rất đáng mừng với người dùng desktop Linux. Hy vọng các trình giả lập terminal khác nhau sẽ tiếp tục phát triển hơn nữa dựa trên các cải tiến của VTE.

1 bình luận

 
GN⁺ 2024-04-09

Ý kiến trên Hacker News

  • Việc độ trễ đầu vào của GNOME Terminal mới nhất đã ngắn hơn cả máy tính Apple //e năm 1983 là một thành tựu, nhưng môi trường thử nghiệm khác với môi trường sử dụng thực tế
    • Bài test được tiến hành trên raw Mutter, một môi trường tối giản, chứ không phải GNOME Shell
    • Không bao gồm độ trễ bàn phím nên đây không phải phép đo độ trễ end-to-end (độ trễ bàn phím có thể lên tới 60ms)
    • Dự kiến độ trễ end-to-end thực tế với thiết lập mặc định sẽ dài hơn
  • Việc đo được thực hiện ở giữa màn hình, nhưng ở phần trên và dưới màn hình có thể chênh nhau 8ms (vì pixel được vẽ từ trên xuống dưới như CRT)
  • Khó so sánh trực tiếp giữa các màn hình. Có thể có những hiệu ứng không thể so sánh do driver hoặc profile gây ra
  • Thật mỉa mai khi ở thời đại có thể dựng hình 3D chân thực, chúng ta vẫn đang giải quyết vấn đề xuất văn bản trong terminal
  • Nỗ lực cải thiện hiệu năng của nhà phát triển VTE và nỗ lực đo độ trễ bằng phần cứng là rất ấn tượng
  • Có câu hỏi liệu có terminal Linux nào, giống như Terminal trên macOS, ghi nhớ history và scrollback theo từng tab hay không
  • Có ý kiến nói rằng đã dùng Gnome lâu năm, nhưng sau khi chuyển sang sway+alacritty thì không thấy khác biệt
  • Có nhắc đến vấn đề kích thước cửa sổ ban đầu của Gnome Terminal quá nhỏ và không lưu được kích thước
  • Có ý kiến rằng khi dùng xterm+i3wm thì chưa từng thấy thứ gì nhanh hơn, và alacritty dùng GPU là hơi quá mức cần thiết
  • Có ý kiến rằng sẽ tốt nếu terminal Ghostty của Mitchelle Hashimoto cũng được đưa vào benchmark
  • Có ý kiến cho rằng benchmark lần này tốt hơn bài test cat đơn giản, và sẽ hay hơn nếu thử thêm nhiều terminal khác, đặc biệt là console Linux native