3P by neo 7달전 | favorite | 댓글 1개
  • VTE(Virtual TErminal library)는 GNOME 터미널 에뮬레이터들의 기반이 되는 라이브러리임. GNOME Terminal, Console, Black Box, Tilix, Terminator, Ptyxis 등의 앱에서 사용되며, Builder와 Workbench의 내장 터미널에도 사용됨.
  • GNOME 46 사이클 동안 VTE의 성능이 크게 향상됨. 이 글에서는 실제로 얼마나 성능이 향상되었는지 측정하고 사용자 입장에서 어떤 차이를 느낄 수 있을지 살펴봄.

측정 대상과 방법

  • 터미널 에뮬레이터의 성능을 측정하는 방법은 다양하지만, 이 글에서는 입력 지연 시간(Input Latency)에 초점을 맞춤.
  • 입력 지연 시간은 키보드를 누른 순간부터 모니터의 픽셀 색상이 변경되기까지 걸리는 시간을 의미함. 낮은 입력 지연 시간을 가진 앱은 반응성이 좋게 느껴지고, 높은 입력 지연 시간을 가진 앱은 느리게 느껴질 수 있음.
  • 입력 지연 시간을 측정하기 위해 하드웨어 입력 지연 테스터를 사용함. 이는 Teensy 보드에 연결된 조도 센서로 구성되며, USB를 통해 컴퓨터에 연결됨.

입력 지연 시간 테스트 결과

  • 첫번째 테스트: cat > /dev/null 명령으로 입력 필드를 만들고 Space 키를 눌렀을 때 블록 커서가 한 셀 오른쪽으로 이동하는데 걸리는 시간 측정
    • VTE 터미널들이 Fedora 39에 비해 Fedora 40에서 크게 개선되어 Alacritty와 거의 동등한 수준으로 향상됨
  • 두번째 테스트: 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 에코시스템 전반에 긍정적인 영향을 미칠 것으로 기대됨. 다만 아직 개선의 여지가 있는 부분들(접근성, 스크롤바 등)도 있어 보임.
  • 리눅스 데스크톱 사용자들에게는 매우 반가운 소식. 다양한 터미널 에뮬레이터들이 VTE의 개선 사항을 기반으로 더욱 발전하기를 기대해 봄.

Hacker News 의견

  • 최신 GNOME 터미널의 입력 지연 시간이 1983년 Apple //e 컴퓨터보다 짧아진 것은 성과이지만, 테스트 환경이 실제 사용 환경과 차이가 있음
    • 테스트는 GNOME Shell이 아닌 베어본 환경인 raw Mutter에서 진행됨
    • 키보드 지연 시간이 포함되지 않아 엔드투엔드 지연 시간 측정이 아님 (키보드 지연 시간이 60ms까지 갈 수 있음)
    • 디폴트 설정에서의 실제 엔드투엔드 지연 시간이 더 길 것으로 예상됨
  • 모니터 중앙에서 측정했지만, 모니터 상단과 하단에서는 8ms의 차이가 날 수 있음 (CRT처럼 위에서 아래로 픽셀이 그려지기 때문)
  • 모니터 간 단순 비교는 어려움. 드라이버나 프로파일에 의한 비교 불가능한 효과가 있을 수 있음
  • 사실적인 3D 렌더링이 가능한 시대에 터미널 텍스트 출력 문제를 해결하는 것이 아이러니함
  • VTE 개발자의 성능 향상 노력과 하드웨어 기반 지연 시간 측정 노력이 인상적임
  • macOS 터미널처럼 탭별로 히스토리와 스크롤백을 기억하는 리눅스 터미널이 있는지에 대한 질문
  • Gnome을 오래 썼지만 sway+alacritty로 바꾼 후 차이를 모르겠다는 의견
  • Gnome 터미널의 작은 초기 윈도우 크기와 크기 저장 안 되는 문제를 언급
  • xterm+i3wm을 쓰면서 더 빠른 것을 경험하지 못했고, GPU를 쓰는 alacritty는 오버킬이라는 의견
  • Mitchelle Hashimoto의 Ghostty 터미널도 벤치마크에 포함되면 좋겠다는 의견
  • 단순 cat 테스트가 아닌 이번 벤치마크가 좋았으며, 더 다양한 터미널, 특히 네이티브 리눅스 콘솔도 테스트해보면 좋겠다는 의견