LINUX.ORG.RU
ФорумTalks

Про qterminal и скорость работы эмуляторов терминала

 , ,


2

4

Открыл для себя qterminal. Оказалось, крутая штука. Умеет табы и тайлинг терминалов. Все хоткеи могут быть настроены через гуй. Умеет прятаться-показываться по хоткею в стиле yakuake. Зависит только от qt.

Но на данный момент есть два недостатка:

  • Не реагирует на команды изменения заголовка из запущенных в терминале программ.
  • При отрисовке цветного текста теряет один пиксель от ширины некоторых букв.

Получается хорошая программа уровня konsole (и даже лучше — konsole не умеет тайлинг), но БЕЗ зависимости от кусков kde. Только немного сырая. Исправить два этих бага, и будет торт.

Ну и в связи с этим, я решил сравнить скорость работы разных терминалов. В каждом терминале выполнялась такая команда:

time seq -s, 1 1000000

Все терминалы были развернуты на полный экран, во всех терминалах шрифт стоял Terminus 9pt (за исключением Eterm и xterm). Результаты:

0m0.698s  Eterm
0m1.227s  st
0m4.545s  konsole
0m6.784s  qterminal
0m16.711s urxvt
0m19.319s xterm
0m20.774s lxterminal

lxterminal, как и все прочие терминалы на основе vte, предсказуемо просасывает. xterm — тоже всё очень предсказуемо. Удивила тормознутость urxvt, который всегда ранее славился скоростью работы. Я ожидал, что konsole окажется медленнее его.

st — это терминал проекта suckless. Когда я его в прошлый раз пробовал, это было тормозное говно. Сейчас скорость отличная, артефактов отрисовки нет.

Результаты Eterm я даже не знаю, как прокомментировать... Если это не какое-нибудь читерство, приводящее к каким-нибудь несовместимостям и редким багам, а честный результат, то я только одно могу сказать: ВОТ КАК НАДО СОФТ ОПТИМИЗИРОВАТЬ, ВСЕМ УЧИТЬСЯ!

konsole и qterminal претендуют на роль легковесных и незадротских терминалов с менюшечками и настройками через гуй — отлично. То, что надо.

★★

Последнее исправление: geekless (всего исправлений: 1)

0m19.319s xterm

У меня в два раза быстрее. Может, стоит сначала его настроить?

0m16.711s urxvt

Вообще не верю. URxvt хоть и кривоват, но не тормоз.

lxterminal, как и все прочие терминалы на основе vte, предсказуемо просасывает.

Предлагаю проверить GNOME Terminal или ROXTerm, а не кривую поделку.

Homura_Akemi
()
Ответ на: комментарий от Homura_Akemi

Предлагаю проверить GNOME Terminal или ROXTerm, а не кривую поделку.

Как же достали фанбои, не знакомые с матчастью. Ваши некривые неподелки roxterm и gnome-terminal не осилили Терминус, поэтому пришлось выставить PT Mono 9pt. Результат: 0m38.549s и 0m38.100s. А теперь иди гугли, что такое vte, и почему от конкретной оболочки вокруг него ничего не зависит.

У меня в два раза быстрее.

Ничего, что у тебя железо другое?

Может, стоит сначала его настроить?

Так скинь конфиг, чего языком-то зря трепать.

Вообще не верю. URxvt хоть и кривоват, но не тормоз.

Ты не веришь утилите time, встроенной в bash? Бида-пичаль.

geekless ★★
() автор топика
Ответ на: комментарий от AptGet

1m58s. Графический режим под управлением nouveau.

geekless ★★
() автор топика
Ответ на: комментарий от z00ke

Омг. Еще один не в курсе, что всё железо разное.

geekless ★★
() автор топика
Ответ на: комментарий от geekless
0m0.771s xterm (Terminus 8)
0m10.369s xterm (DejaVu Sans Mono 8)
0m12.890s roxterm-gtk2 (DejaVu Sans Mono 8)
0m0.746s urxvt-256color (DejaVu Sans Mono 8)

Так скинь конфиг, чего языком-то зря трепать.

Должно быть достаточно этого:

XTerm*fastScroll: true
XTerm*jumpScroll: true

В eterm (вероятно) и konsole (точно) используется пропуск кусков буфера, которые теоретически не могут быть восприняты глазом человека. В urxvt и xterm это тоже опционально есть.

Ваши некривые неподелки roxterm и gnome-terminal не осилили Терминус

Это карма, у меня осилили. У вас наверно Arch :}

Homura_Akemi
()

Pantheon Terminal

0m11.359s

xterm

0m1.959s

Предсказуемый результат

anonymous_sama ★★★★★
()
Ответ на: комментарий от z00ke

У меня мать лежит в больнице. Чтоб тебе, сука, всю жизнь по таким «звонкам» бегать. Ходил бы ты тут такой умный в реале, давно бы в морду получил, ушлепок.

geekless ★★
() автор топика
Последнее исправление: geekless (всего исправлений: 1)
Ответ на: комментарий от geekless

Вот я, значит, тут просто пошутил, а ты набрасываешься. В любом случае, в таких обстоятельствах прозвучало немного некорректно, посему приношу извинения.
//Не знаю что с твоей матерью, но желаю ей скорого выздоровления.

z00ke
()

Кстати если запустить на одной из tty матрица, будет отдыхать:
http://ompldr.org/iZzc4cg
Вполне сойдет как эмуляция работы за компьютером лол
И там конечно больше полторы минуты

1m38.487s

anonymous_sama ★★★★★
()

Konsole на Terminus Bold 12 и на полном экране выдаёт результат:

real    0m0.384s
user    0m0.023s
sys     0m0.036s

В общем, схожий с твоим.

Kindly_Cat
()
Ответ на: комментарий от z00ke

Нервы на пределе, сорвался. Извини.

geekless ★★
() автор топика
Ответ на: комментарий от Nominalus_Externatus

у тебя eterm русифицированый?

Неа. Я уж не помню, по какой причине его ставил. Увидел в установленных, вот и протестировал за компанию.

geekless ★★
() автор топика
Ответ на: комментарий от xsektorx

умеет

Ээээ... Разве умеет? Давно научилась? Не могу щас проверить, на этом компе только гном2 установлен.

geekless ★★
() автор топика
Ответ на: комментарий от geekless

упс, ошибся. оно только разделяет одно окно на несколько, причём только горизонтально или только вертикально. на полноценный тайлинг не тянет

xsektorx ★★★
()

Забавно.

В Konsole две вещи бесят:
1. Некоторые hotkeys не работают в Midnight Commander. Например Shift+F6 (переименовывание), обрабатывается как F8 (удаление). И еще несколько есть. В настоящей консое все Ок. AFAIK не исправляется.
2. С какой-то версии названия табов стали на полэкрана. Зачем?

И, да, тайлинга не хватает.

Qterminal попробую, спасибо, хотя «потеря одного пикселя» должна раздражать.

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 1)
Ответ на: комментарий от Kindly_Cat

Celeron D 2.6ГГц, geforce 5500, nouveau.

На новом ноуте проверить не могу — он щас на другой квартире.

geekless ★★
() автор топика
Ответ на: комментарий от geekless

а, значит напрямую. С xft urxvt, кстати, быстрее справляется

urxvt -fn "xft:Terminus:pixelsize=16"

4,301 

urxvt -fn "-*-terminus-*-*-*-*-16-*-*-*-*-*-iso10646-1"

18,125
lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

Глянул настройки:

URxvt.font: xft:Terminus:size=9:antialias=false

Таки .pcf.gz это шрифт на стороне клиента или сервера? Блин, тяжело жить без знания матчасти... :-D

geekless ★★
() автор топика
Ответ на: комментарий от lazyklimm

правда st в любом случае быстрее

./st -f "-*-terminus-*-*-*-*-16-*-*-*-*-*-iso10646-1"

1,677 

./st -f "Terminus:pixelsize=16" 

1,572

но я не вижу у него прокрутки, и есть подозрение, что он читерствует

lazyklimm ★★★★★
()
Ответ на: комментарий от Kroz

Некоторые hotkeys не работают в Midnight Commander. Например Shift+F6 (переименовывание), обрабатывается как F8 (удаление)

УМВР

Проверь клавиатурные схемы в настройках профиля, возможно у тебя стоит что-то нестандартное.

И, да, тайлинга не хватает.

Вид → Разделить окно → далее выбираешь по вкусу. Специально для тебя и уважаемого geekless. :)

AX ★★★★★
()
Ответ на: Неа от geekless

Зато в konsole можно вкладки переключать внутри субокон 8)

madgnu ★★★★★
()

Интересно - ты куда спешишь? Если скорость вывода очень нужна, то перенаправляешь вывод в файл, а так я даже на vte-терминале на максимальной скорости ничего прочитать не успею.

Vovka-Korovka ★★★★★
()

Результаты Eterm я даже не знаю, как прокомментировать... Если это не какое-нибудь читерство, приводящее к каким-нибудь несовместимостям и редким багам, а честный результат, то я только одно могу сказать: ВОТ КАК НАДО СОФТ ОПТИМИЗИРОВАТЬ, ВСЕМ УЧИТЬСЯ!

почти уверен, что все эмуляторы кроме последних 3 «читят», текст сначала попадает в буфер, потом происходит скролл, а отрисовка делается по какому-то time-out не чаще N раз в секунду, или типа того.

waker ★★★★★
()
Ответ на: комментарий от geekless

поэтому и взял в кавычки. но судя по комментам — тебе уже подсказали, какая настройка включает такую же оптимизацию в xterm :)

waker ★★★★★
()

Прогнал тест. Получил следующие результаты:

xterm (80x25):

real    0m3.134s
user    0m0.514s
sys     0m0.051s

xterm (159x43):

real    0m4.748s
user    0m0.622s
sys     0m0.037s

framebuffer tty (120x36):
real    5m2.432s
user    0m0.508s
sys     0m0.042s
Впрочем, от терминалов многое и не требуется. Даже при выполнении сабжевого теста (а, на терминал посылается 6888896 байт) более 5-ти минут, скорость вышеупоминаемой фреймбуферовской консоли вполне соответствует 22778 байт/с, что значительно превышает скорость текстовых терминалов 70-х годов. При этом, фреймбуферовская консоль в секунду получает больше чем в 5 раз данных, чем может отображать единомоментно. Этого более чем достаточно для комфортной работы.
PS. Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz, nVidia GT520. Тест фреймбуферовской консоли (nouveaufb) производился в LFS 7.2 с ядром 3.5.4.

saahriktu ★★★★★
()

Tmux в konsole замедляет вывод ровно вдвое по сравнению с чистым konsole.

aidaho ★★★★★
()
Ответ на: комментарий от saahriktu

Впрочем, от терминалов многое и не требуется.

Иногда требуется: команда, которая вываливает кучу строк в stdout может заметно зависеть от скорости терминала. Наблюдал когда-то на вайне с включённым расширенным дебаг-логом по некоторым подсистемам.

aidaho ★★★★★
()
Ответ на: комментарий от aidaho

когда-то работал на макоси, так вот там при компиляции, если вывод gcc валился в терминал, время сборки раз в 10 увеличивалось. приходилось перенаправлять в /dev/null

waker ★★★★★
()
Ответ на: комментарий от waker

Ммм... Может ты всё же выхлоп make имел ввиду? Или всё было так печально в коде, что ворнинги шли стеной?

geekless ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.