LINUX.ORG.RU

qt 5.11 - тормоза по I/O

 , ,


0

1

После обновления до qt-5.11.1 и kde-5.13.2 стала тормозить прокрутка в konsole. При этом оно очень сильно елозило по диску, доходило до 30 МБ/с. Сначала грешил на konsole, но в yakuake было все точно так же. Даунгрейд konsole тоже результатов не принес.

В qbittorrent при щелкании по кнопкам также наблюдались лаги. При этом после сворачивания в трей все было ок.

Пока откатился на qt-5.9.6 и kde-5.12.6, полет нормальный. Кеды пришлось откатить, т.к. они требовали новый qt.

Кто-нибудь сталкивался?

★★★

Ответ на: комментарий от MikeWortin

Впрочем, там еще были вызовы writev, который писал в unix-сокет, судя по всему.

konsole 31564 user    3u     unix 0x000000001c4c2325      0t0   179640 type=STREAM
В стрейсе это выглядело так:
31565 1530885943.330488 write(5, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000026>
31564 1530885943.412337 writev(3, [{iov_base=";\3\5\0-\0@\3\0\0\0\0\0\0\0\0\236\5\t\3\202\3\n\0\7\0@\3-\0@\3\236\5\t\3\0\0\0\0\236\5\t\3\0\0\0\0 \2\0\0\16\0@\3\0\0\0\08\0\4\0-\0@\3\0\0\10\0\0\0\0\0", iov_len=76}], 1) = 76 <0.000010>

slvrn ★★★ ()

Сначала грешил на konsole, но в yakuake было все точно так же

У них одинаковая кодовая база, насколько я помню. Последнее просто обёртка над konsole.

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

У них одинаковая кодовая база, насколько я помню. Последнее просто обёртка над konsole.

По субъективным впечатлениям, UI qbittorrent'а тоже тормозило, после нажатия кнопок результат отображался не сразу, и дисковая активность тоже была высокой. Специально I/O на нем не замерял.

Есть какой-нибудь минимальный пример, чтобы проверить тормоза?

Пример чего? У меня есть лог стрейса и вывод lsof, они нужны?

На следующей неделе попробую обновиться еще раз и посмотрю внимательнее.

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

У меня в десятом оффтопике прокрутка вообще не тормозит, хоть в кутях, хоть и без... К сожалению Линукс еще не скоро для десктопа допилят.

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

В общем, все стало ок после того, как я смонтировал tmpfs в /var/tmp. lsof показывает, что там что-то открыто.

https://pastebin.com/TQnyTnVY

В приложениях на GTK такого нет, только в кьютишных и, почему-то, в X-сервере.

Судя по тому, что это проявляется не в кдеешных приложениях (qbittorrent, virtualbox), причина в QT.

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

и, почему-то, в X-сервере

Xorg        892                       root  DEL       REG               0,43              281410 /var/tmp/#281410
Xorg        892   893 Xorg            root  DEL       REG               0,43              281410 /var/tmp/#281410
Xorg        892   894 Xorg            root  DEL       REG               0,43              281410 /var/tmp/#281410
Xorg        892   895 Xorg            root  DEL       REG               0,43              281410 /var/tmp/#281410
Xorg        892   896 disk_cach       root  DEL       REG               0,43              281410 /var/tmp/#281410
Xorg        892   900 InputThre       root  DEL       REG               0,43              281410 /var/tmp/#281410
kwrite    17598                       user  DEL       REG               0,43              281410 /var/tmp/#281410
kwrite    17598 17600 QXcbEvent       user  DEL       REG               0,43              281410 /var/tmp/#281410
kwrite    17598 17601 QDBusConn       user  DEL       REG               0,43              281410 /var/tmp/#281410
kwrite    17598 17602 disk_cach       user  DEL       REG               0,43              281410 /var/tmp/#281410

Т.е., файл там тот же самый. Если закрыть программу, то он тоже закроет этот файл. В принципе, на данный момент не важно, зачем он это делает.

Если что, у меня большая дисковая активность воспроизводится, если запустить /usr/bin/systemsettings5 и просто пощелкать по пунктам слева.

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

Проверил qtcore и qtgui, оба собираются с флагом -DQT_NO_DEBUG. В use-флагах debug также отключен. Чего-нибудь еще, говорящего про наличие дебага, в логах сборки не нашел.

slvrn ★★★ ()