скорость запуска QKonsole

КПК с Linux, установка Linux на iPaq и другие модели, программы
Закрыто
geometer
Доктор (4 lvl)
Сообщения: 340
Зарегистрирован: Вс июн 27, 2004 09:55

скорость запуска QKonsole

Сообщение geometer » Пн фев 07, 2005 01:21

У меня такое ощущение, что в 1.22 по сравнению с 1.21 QKonsole стала запускаться явно медленнее. Может, это вина вовсе не прошивки, а установленных у меня пакетов (в частности, кучи шрифтов). А может, и вовсе кажется.

По этому поводу вопросы:

1. Никому больше не кажется? ;)
2. Может, есть какие-то соображения о причинах?
3. Где бы взять сорцы именно той версии qkonsole, которая в прошивке? Может, я разобрался бы, в чем проблема.
-- geometer

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Re: скорость запуска QKonsole

Сообщение maslovsky » Пн фев 07, 2005 09:34

geometer писал(а):У меня такое ощущение, что в 1.22 по сравнению с 1.21 QKonsole стала запускаться явно медленнее. Может, это вина вовсе не прошивки, а установленных у меня пакетов (в частности, кучи шрифтов). А может, и вовсе кажется.
Не знаю, специально не замерял, но в принципе возможно и такое.
3. Где бы взять сорцы именно той версии qkonsole, которая в прошивке? Может, я разобрался бы, в чем проблема.
Посмотри, может, сможешь пошустрее сделать саму консоль.

http://cacko.oesf.org/downloads/qkonsol ... r-cacko.gz

geometer
Доктор (4 lvl)
Сообщения: 340
Зарегистрирован: Вс июн 27, 2004 09:55

Re: скорость запуска QKonsole

Сообщение geometer » Вт фев 08, 2005 10:29

Проблема оказалась действительно в шрифтах. QKonsole при старте собирает список всех шрифтов, всех размеров шрифтов, да еще проверяет все шрифты на моноширинность. На моей машинке на это уходит ~2.35 секунды при общем времени старта ~2.75 секунды.

Тормозят qt-шные вызовы, так что особо там не пооптимизируешь. У меня есть 2 идеи сравнительно дешевого решения проблемы.

1. Можно инициализировать все эти списки только тогда, когда они реально нужны. То есть перенести торможение в первое открытие меню Fonts или в первое нажатие Fn+1 или Fn+2. Меня, например, это будет раздражать заметно меньше -- я обычно ни тем, ни другим не пользуюсь.

2. Кешировать информацию о шрифтах между запусками. Отличное решение, только вот я не знаю, как определять, что набор шрифтов поменялся с прошлого запуска.

Может, у кого-нибудь есть еще соображения?

(Я сделаю первое решение на днях, если только не придумается к тому времени что-нибудь лучшее.)
-- geometer

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Вт фев 08, 2005 11:10

Может просто дать пользователю возможность самому выбрать, какие шрифты показываются в меню? Я бы с удовольствием выкинул оттуда все шрифты, которыми не мользуюсь в консоли...

Вообще, если есть желание что-то ещё доделать в консоли, буду только рад

geometer
Доктор (4 lvl)
Сообщения: 340
Зарегистрирован: Вс июн 27, 2004 09:55

Сообщение geometer » Чт фев 10, 2005 01:45

Не так все просто оказалось. 1 секунду из 3 я выиграл с помощью грязного хака (узнаю список шрифтов без системных функций qtopia), но оставшееся как будто не сильно от количества шрифтов зависит. Пытаюсь разобраться.
maslovsky писал(а):Вообще, если есть желание что-то ещё доделать в консоли, буду только рад
По правде сказать, почти все, что раздражало меня в консоли в 1.21, в новой версии волшебным образом ;) исправилось. :D Остались только проблемки с русскими буквами, но я даже не точно знаю, консоль это, bash, или terminfo.

Может быть, посмотрю со временем... ;)
-- geometer

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Чт фев 10, 2005 11:14

По правде сказать, почти все, что раздражало меня в консоли в 1.21, в новой версии волшебным образом исправилось.
Никакого волшебства :)

geometer
Доктор (4 lvl)
Сообщения: 340
Зарегистрирован: Вс июн 27, 2004 09:55

Сообщение geometer » Чт фев 10, 2005 20:21

ivanhoe писал(а):А в чем заключаются проблемы с русскими буквами?
Поскольку ввод происходит в utf8, если набирать русские буквы в командной строке, то они запоминаются как 2-байтовые символы. Но если нажимать backspace -- он стирает за 1 нажатие 1 байт, а не 1 символ. (А на экране курсор при этом перемещается на 1 символ, что окончательно сбивает с толку.)

Даже если мне не нужно никогда вводить русские буквы в командной строке, я иногда делаю это по ошибке -- и тогда у меня возникают трудности со стиранием ошибочного текста. ;)
-- geometer

kfetisov
Кандидат (3 lvl)
Сообщения: 193
Зарегистрирован: Ср июн 04, 2003 15:03

Сообщение kfetisov » Пт фев 11, 2005 10:04

geometer писал(а):
ivanhoe писал(а):А в чем заключаются проблемы с русскими буквами?
Поскольку ввод происходит в utf8, если набирать русские буквы в командной строке, то они запоминаются как 2-байтовые символы. Но если нажимать backspace -- он стирает за 1 нажатие 1 байт, а не 1 символ. (А на экране курсор при этом перемещается на 1 символ, что окончательно сбивает с толку.)

Даже если мне не нужно никогда вводить русские буквы в командной строке, я иногда делаю это по ошибке -- и тогда у меня возникают трудности со стиранием ошибочного текста. ;)
Присоединяюсь полностью - в MC редактировать файлы из-за этого никак не получается. А очень хочется :)
С сибирским приветом,

Константин
--
Nokia 9300 6.27/ Iphone 8Gb 1.1.2 / GP2X MKII

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Пт фев 11, 2005 18:17

geometer писал(а):
ivanhoe писал(а):А в чем заключаются проблемы с русскими буквами?
Поскольку ввод происходит в utf8, если набирать русские буквы в командной строке, то они запоминаются как 2-байтовые символы. Но если нажимать backspace -- он стирает за 1 нажатие 1 байт, а не 1 символ. (А на экране курсор при этом перемещается на 1 символ, что окончательно сбивает с толку.)

Даже если мне не нужно никогда вводить русские буквы в командной строке, я иногда делаю это по ошибке -- и тогда у меня возникают трудности со стиранием ошибочного текста. ;)
Да есть такое дело, глючит наверное bash...

geometer
Доктор (4 lvl)
Сообщения: 340
Зарегистрирован: Вс июн 27, 2004 09:55

Ускорение запуска qkonsole

Сообщение geometer » Ср мар 02, 2005 01:41

Прикольно. Нашел способ ускорить запуск консоли без всякого программирования. Достаточно переименовать файлы шрифта:

vga_160_80.qpf => vga_160_50.qpf
vga_160_80_t10.qpf => vga_160_50_t10.qpf

Ускоряет запуск примерно на 0.8 секунды ;)

Это не идеально, но уже лучше. Ищу дальше.
-- geometer

geometer
Доктор (4 lvl)
Сообщения: 340
Зарегистрирован: Вс июн 27, 2004 09:55

Re: Ускорение запуска qkonsole

Сообщение geometer » Ср мар 02, 2005 02:10

geometer писал(а):Достаточно переименовать файлы шрифта:

vga_160_80.qpf => vga_160_50.qpf
vga_160_80_t10.qpf => vga_160_50_t10.qpf
На всякий случай ;) объясню смысл происходящего. Это число (80 или 50) отвечает за толщину шрифта (50 -- normal, 75 -- bold). При попытке установить шрифт Qt ищет сперва шрифт шириной 50. Когда не находит -- с любой другой шириной, и пытается его "поправить". В случае шрифта vga эта "поправка" абсолютно ничего не меняет, но занимает порядочно времени.

Так что замена 80 => 50 заведомо нигде ничего не попортит. :)
-- geometer

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Re: Ускорение запуска qkonsole

Сообщение maslovsky » Ср мар 02, 2005 10:47

geometer писал(а):
geometer писал(а):Достаточно переименовать файлы шрифта:

vga_160_80.qpf => vga_160_50.qpf
vga_160_80_t10.qpf => vga_160_50_t10.qpf
На всякий случай ;) объясню смысл происходящего. Это число (80 или 50) отвечает за толщину шрифта (50 -- normal, 75 -- bold). При попытке установить шрифт Qt ищет сперва шрифт шириной 50. Когда не находит -- с любой другой шириной, и пытается его "поправить". В случае шрифта vga эта "поправка" абсолютно ничего не меняет, но занимает порядочно времени.

Так что замена 80 => 50 заведомо нигде ничего не попортит. :)
Интересно, спасибо! Вот соберу ещё версию с твоим патчем и посмотрю, насколько всё стало лучче :)

Закрыто

Вернуться в «КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее»