Долгий запуск графических приложений

aokh89

New member
Сообщения
4
#1
Добрый день!
Столкнулся с проблемой недостаточной скорости отрисовки приложений.
Есть простое графическое Qt приложение (буквально с десяток кнопок и несколько маленьких картинок). При запуске появляется черное окно и заполняется содержимым только через 2-3 секунды. Во время запуска загрузка ЦП подскакивает до 100%. Стандартные приложения тоже запускаются через пару секунд. Из всего этого я делаю вывод, что у меня тупо не тянет железо. Вопрос: можно ли каким-то образом ускорить запуск приложений? Может быть есть какие-то тонкие настройки драйвера/графической оболочки?
В панели управления -> оформление fly -> эффекты отключил тени и прозрачность, помогло, но совсем немного.
Еще есть идея полностью отключить fly-dm (система встраиваемая и будет крутиться автономное приложение). Поможет ли это и если да, то как это сделать?

Железо: Intel Atom N450 (1.66ГГц) + GMA3150, 1Gb RAM, операционка стоит на SSD

На всякий случай вывод glxinfo -B:
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Intel Open Source Technology Center (0x8086)
Device: Mesa DRI Intel(R) Pineview M (0xa011)
Version: 18.1.3
Accelerated: yes
Video memory: 384MB
Unified memory: yes
Preferred profile: compat (0x2)
Max core profile version: 0.0
Max compat profile version: 1.4
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 2.0
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Pineview M
OpenGL version string: 1.4 Mesa 18.1.3

OpenGL ES profile version string: OpenGL ES 2.0 Mesa 18.1.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
 

Olej

New member
Сообщения
1 307
#2
1. Маловато будет...
Или RAM добавлять, или тщательно анализировать и выбивать все сервисы не нужные запущенные. 1-е - лучше.

2. Покажите:
Код:
$ lspci -k | grep -EA 3 "VGA|3D|Display"
Что за видеоадаптер?
Хотя видео там, скорее всего, не при чём, а слабый процессор + нагруженный запуском чего-то из обширных библиотек.

появляется черное окно и заполняется содержимым только через 2-3 секунды.
3. 2-3 секунды это не так уж и "долгий", если а). слабый процессор, б). Qt приложение, в). не оптимизированное никак Qt приложение.
P.S. Qt - это большая гадость.
 
Последнее редактирование:

aokh89

New member
Сообщения
4
#3
Что за видеоадаптер?
Хотя видео там, скорее всего, не при чём, а слабый процессор + нагруженный запуском чего-то из обширных библиотек.
У меня тоже складывается впечатление, что процессор не тащит, хотя интуитивно кажется, что должен тянуть (1.6ГГц все-таки, когда-то 166МГц как-то обходились).

Видеоадаптер встроенный, GMA3150
Вывод lspci:
00:02.0 VGA compatible controller: Intel Corporation Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller
Subsystem: Intel Corporation Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller
Kernel driver in use: i915
Kernel modules: i915

3. 2-3 секунды это не так уж и "долгий", если а). слабый процессор, б). Qt приложение, в). не оптимизированное никак Qt приложение.
P.S. Qt - это большая гадость.
Не уверен, что дело в Qt, стандартные приложения тоже тормозят.
 

Olej

New member
Сообщения
1 307
#4
Вот это главное, здесь всё соответствует:
Код:
Kernel driver in use: i915
Kernel modules: i915
стандартные приложения тоже тормозят
А "стандартные" приложение в окружении KDE, из которого сделан Fly - это и есть Qt.

Скорее всего (следующее подозрение), у вас недостаточно памяти, RAM, для активного использования графики Qt, ... и у вас виртуальные страницы RAM массово перезамещаются со свап, или между собой (если нет, мало, или недостаточно свап).
Теперь посмотрите (покажите):
Код:
olej@astra:~$ free
              total        used        free      shared  buff/cache   available
Mem:        4039172      589480     2571920       59316      877772     3167188
Swap:       4191228           0     4191228
И ещё так:
Код:
olej@astra:~$ /sbin/swapon -s
Имя файла                               Тип             Размер  Исп-но  Приоритет
/dev/sda5                               partition       4191228 0       -2
 

Olej

New member
Сообщения
1 307
#5
Код:
OpenGL version string: 1.4 Mesa 18.1.3
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 18.1.3
У вас и OpenCL версии используются ... не самые свежие, но достаточно свежие.
Видеоадаптер слабенький, но не в нём, похоже, дело...
Можете для "окончательно убедиться" сделать ещё так - максимальная частота кадров при отключенной вертикальной синхронизации:
Код:
olej@ACER:~$ vblank_mode=0 glxgears
ATTENTION: default value of option vblank_mode overridden by environment.
17749 frames in 5.0 seconds = 3548.366 FPS
20064 frames in 5.0 seconds = 4012.741 FPS
19934 frames in 5.0 seconds = 3986.600 FPS
Но дело а том, что то что вы (и я;)) смотрите - это всё с OpenGL, OpenGL используют далеко не все GUI программы, это нужно, больше всего, всяким "свистелкам и перделкам" мультимедийным, игрушкам... Большинство GUI программ прорисовывают окна процессором, без графических ускорителей GPU (или при их незначительном использовании). Вот где-то тут у вас - засада :eek:. Скорее всего - с использованием RAM: 1Gb за глаза достаточно для консольного Linux, но будет мало для активного GUI, да ещё с Qt.

P.S. А уж если вы свап не создавали, "пожалев" SSD :D - то тут вам просто никак не избежав засады!
 

Montfer

New member
Сообщения
2 364
#6
В докуметации о минимальных требованиях сказано только про свободное место на ЖМД и оперативную память (1Гб). Судя по всему система достаточно прожорлива и 1Гб маловато. Сегодня руки не дошли на нашем атоме с 1 до 2 гб увеличить памятт и посмотреть результат.
Тоже работает медленно, но у нас плюсом доктор веб крутится. И без видеокарты
 

Olej

New member
Сообщения
1 307
#9
Один раз он даже нашел нежелательное ПО, которое не увидел касперский..
Что такое "нежелательное ПО", которое они там все "видят" под Linux/UNIX? - это для меня загадка природы долгие годы работы с Linux. :eek:
Но это уже тема совсем другого обсуждения здесь в форуме: Нужен ли антивирус вообще? ... не станем засорять разговор ...
 

Olej

New member
Сообщения
1 307
#10
и оперативную память (1Гб). Судя по всему система достаточно прожорлива и 1Гб маловато. Сегодня руки не дошли на нашем атоме с 1 до 2 гб увеличить памятт и посмотреть результат.
Вот это интересно бы, относительно RAM на том, что "крутится медленно".
Только сначала бы посмотреть те команды по RAM, что я спрашивал показать выше.
Вообще то, Linux а). очень щадяще расходует память, но б). очень резко начинает деградировать когда память исчерпывается.
 

Montfer

New member
Сообщения
2 364
#11
Увы, я показать вывод терминала не смогу - тот комп на работе и крутится со смоленском 1.5
Когда получим 1.6, тогда будет смыл в сравнении
 

Olej

New member
Сообщения
1 307
#12
Увы, я показать вывод терминала не смогу - тот комп на работе и крутится со смоленском 1.5
А есть радикальная разница между 1.5 и 1.6? (по этим показателям)
Подождём ... я рассчитывал на скрины от ТС, у которого это крутится с видеоподсистемой - это интереснее.
 

Montfer

New member
Сообщения
2 364
#13
А есть радикальная разница между 1.5 и 1.6? (по этим показателям)
Подождём ... я рассчитывал на скрины от ТС, у которого это крутится с видеоподсистемой - это интереснее.
В виртуальной среде версия 1.5 с установленными make, gcc, linux-headers и драйверами для виртуал бокса использует 331 Мб оперативый, а 1.6 с дровами для виртуал бокса и хз чего там успел понаставить для тестов - жрет 170 Мб
 

Olej

New member
Сообщения
1 307
#14
В виртуальной среде версия 1.5 с установленными make, gcc, linux-headers и драйверами для виртуал бокса использует 331 Мб оперативый, а 1.6 с дровами для виртуал бокса и хз чего там успел понаставить для тестов - жрет 170 Мб
Под VirtualBox, в виртуальной установке, всё это не показательно и не интересно.
 

aokh89

New member
Сообщения
4
#15
free:
total used free shared buff/cache available
Mem: 1000924 191560 422488 94336 386876 571332
Swap: 1036284 13568 1022716

/sbin/swapon -s:
Имя файла Тип Размер Исп-но Приоритет
/dev/sda5 partition 1036284 13568 -2

glxgears:
ATTENTION: default value of option vblank_mode overridden by environment.
888 frames in 5.0 seconds = 177.478 FPS
911 frames in 5.0 seconds = 182.190 FPS
914 frames in 5.0 seconds = 182.461 FPS
923 frames in 5.0 seconds = 184.510 FPS
 

Olej

New member
Сообщения
1 307
#16
Код:
free:
total used free shared buff/cache available
Mem: 1000924 191560 422488 94336 386876 571332
Swap: 1036284 13568 1022716
У вас а). очень мало памяти, б). слишком маленький раздел своп раздела, в). своп слишком активно используется... ваш Qt с его GUI приложениями только и гоняют страницы между памятью и свопом.
Сделайте своп (как минимум) в 2 раза больше. (Для этого программой parted/gparted ужмите /dev/sda1, а потом на этот размер раздвиньте сначала /dev/sda2, а затем /dev/sda5).

P.S. Я видел (на больших компиляциях), на ARM процессоре с 1Gb RAM, когда поток ядра kswapd0 занимает (меняется, прыгает) 90% и 95% процессорного времени на виртуализацию страниц памяти (тупо и бессмысленно тасует страницы памяти), т.е. на полезную работу остаётся 5-10% процессорного времени, выполнение замедляется в 10-20 раз!

Вы можете это контролировать запустив команду top в отдельном терминале, и наблюдать как распределяется загрузка во время старта приложения, которое вы считаете медленным.
 
Последнее редактирование:

Olej

New member
Сообщения
1 307
#17
Код:
glxgears:
ATTENTION: default value of option vblank_mode overridden by environment.
888 frames in 5.0 seconds = 177.478 FPS
911 frames in 5.0 seconds = 182.190 FPS
914 frames in 5.0 seconds = 182.461 FPS
923 frames in 5.0 seconds = 184.510 FPS
В хорошо производительной видеоподсистеме эти цифры должны быть близки в частоте вертикальной развёртки монитора - 60Гц (если TFT). У вас цифры плохие. Но это касается только OpenGL оптимизации.
Но я просил показать не просто glxgears, а на максимальной частот, без привязки к вертикальной развёртке:
Код:
$ vblank_mode=0 glxgears
 
Последнее редактирование:

Olej

New member
Сообщения
1 307
#18
Еще есть идея полностью отключить fly-dm (система встраиваемая и будет крутиться автономное приложение). Поможет ли это и если да, то как это сделать?
Есть соображение, что в первую очередь, вам бы пересмотреть перечень запущенных в системе сервисов (серверов, демонов, служб, ...) + убить не требуемые в ваших условиях (это и освободит лишнюю память, и разгрузит процессор от ненужной работы, т.е. "вернёт" вам производительность одновременно "с 2-х рук").
Но это сама по себе обстоятельная и обширная тема, поэтому, чтобы не засорять, я вынес это в отдельную тему: Сервисы.
 

aokh89

New member
Сообщения
4
#19
Но я просил показать не просто glxgears, а на максимальной частот, без привязки к вертикальной развёртке:
Это и есть вывод без вертикальной синхронизации (обратите внимание на "ATTENTION: default value of option vblank_mode overridden by environment.")

У вас а). очень мало памяти, б). слишком маленький раздел своп раздела, в). своп слишком активно используется... ваш Qt с его GUI приложениями только и гоняют страницы между памятью и свопом.
Сделайте своп (как минимум) в 2 раза больше. (Для этого программой parted/gparted ужмите /dev/sda1, а потом на этот размер раздвиньте сначала /dev/sda2, а затем /dev/sda5).
Есть соображение, что в первую очередь, вам бы пересмотреть перечень запущенных в системе сервисов (серверов, демонов, служб, ...) + убить не требуемые в ваших условиях (это и освободит лишнюю память, и разгрузит процессор от ненужной работы, т.е. "вернёт" вам производительность одновременно "с 2-х рук").
Большое спасибо за советы, попробую!