170 похожих чатов

Подскажите, пожалуйста. Нужно расследовать "небольшое подвисание UI" в Qt-приложении. Выглядит

как небольшая, но заметная пользователю задержка в 300-500 мс в реакции интерфейса. Скорее всего, главный поток на чем-то подвисает.
Хочется разобраться на чем. Подвисание происходит у пользователя.

Имеющиеся идеи:
1) запустить профайлер типа VerySleepy, снять лог с минидампом и в отладчной среде с символами посмотреть на задержки. Попробовал, снял, но разобраться не удалось - нужно будет повторить.
2) запустить procdump в режиме слежения за... и вот тут я в вопросе - за чем? Он с параметром -h умеет следит за подвисанием на 5 секунд главного потока. Мне бы то же самое, только с подвисанием на заданное количество миллисекунд - чтобы снять дамп и посмотреть в отладке, чем занят главный поток.

Может есть еще какие идеи?

10 ответов

12 просмотров

Без кода это бессмысленно обсуждать

Александр-Григорьев Автор вопроса
Ilya Zviagin
Без кода это бессмысленно обсуждать

Меня интересует методология расследования таких проблем. Если в этом чате вопросы только по коду, тогда да - это не сюда.

Александр Григорьев
Меня интересует методология расследования таких пр...

Надо смотреть профайлером по потокам/ядрам где идёт разрастание event loop, желательно смотреть синхронно с таймлайном рендера Сразу будут видны корреляции

Александр Григорьев
А что такое "таймлайн рендера"?

Ну по факту - поток, который пинает рендер окна

Aliaksandr Onishchuk
Ну по факту - поток, который пинает рендер окна

Могу сразу уточнить - я отлаживал такие проблемы в Qt приложках, там потоки по назначениию видно

Александр-Григорьев Автор вопроса
Aliaksandr Onishchuk
Могу сразу уточнить - я отлаживал такие проблемы в...

Я так понимаю, что главный поток и event loop обрабатывает, и всю графику рисует.

Александр Григорьев
Я так понимаю, что главный поток и event loop обра...

Не совсем, но да, главный поток тормозить не комильфо рендер может идти параллельным потоком А может и нет, зависит от библиотеки GUI и архитектуры рендеринга

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта