Ostatnio próbowałem różnych emulatorów terminali, od wbudowanego terminalu gnome, aterm, xterm, wterm, aż do rxvt. Test, który przeprowadzam, jest w następującej kolejności:
- Otwórz okno tmux z 2 panelami
- Lewe okienko będzie zadaniem wymagającym intensywnego mówienia, na przykład
grep a /et/c -r
prostymtime seq -f 'blah blah %g' 100000
- Prawym okienkiem będzie okno vim z włączoną składnią, otwierające każdy plik zawierający więcej niż> 100 wierszy kodu.
Kiedy lewy panel drukuje dużo danych wyjściowych, prawy panel wydaje się być bardzo wolny i nie odpowiada, próbowałem przewijać w vimie, ale zmiana zajmuje 1-2 sekundy. Kiedy próbuję nacisnąć CtrlClewy panel, czeka ponad 10 sekund, zanim się zatrzyma
Kiedy robię to samo w TTY (naciśnięcie CTRL+ ALT+ ( F[1-6])), tak się nie dzieje i oba panele reagują bardzo szybko.
Odwróciłem niektóre konfiguracje, takie jak czcionki antyaliasowe, kolejność kolorowania, używam ustawień domyślnych i zmieniam na xmonad i openbox, ale to nic nie zmienia.
Rezultat time seq -f 'blah blah %g' 100000
nie jest tak naprawdę różny wśród tych terminali, ale czas reakcji jest naprawdę inny, szczególnie gdy korzystam z tmux-a (lub innych multiplekserów). Do Twojej wiadomości, używam ich wszystkich w trybie zmaksymalizowanym.
Czytałem o terminalach buforowanych ramkami, ale nie jestem pewien, jak to działa i jak można go użyć do przyspieszenia emulatora terminala.
Moje pytanie brzmi: co sprawia, że emulator terminala jest znacznie wolniejszy niż TTY? Czy jest jakaś możliwość, aby zrobić to tak szybko, jak TTY? Może przyspieszenie sprzętowe czy coś? Jedno wiem, że moja rozdzielczość na serwerze X podczas uruchamiania zmaksymalizowanego emulatora terminali to 1920x1080, a kiedy korzystam z TTY, jest mniej niż to, ale nie jestem pewien, jak to wpłynie na wydajność.