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