- 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의 개선 사항을 기반으로 더욱 발전하기를 기대해 봄.