как небольшая, но заметная пользователю задержка в 300-500 мс в реакции интерфейса. Скорее всего, главный поток на чем-то подвисает.
Хочется разобраться на чем. Подвисание происходит у пользователя.
Имеющиеся идеи:
1) запустить профайлер типа VerySleepy, снять лог с минидампом и в отладчной среде с символами посмотреть на задержки. Попробовал, снял, но разобраться не удалось - нужно будет повторить.
2) запустить procdump в режиме слежения за... и вот тут я в вопросе - за чем? Он с параметром -h умеет следит за подвисанием на 5 секунд главного потока. Мне бы то же самое, только с подвисанием на заданное количество миллисекунд - чтобы снять дамп и посмотреть в отладке, чем занят главный поток.
Может есть еще какие идеи?
Без кода это бессмысленно обсуждать
Меня интересует методология расследования таких проблем. Если в этом чате вопросы только по коду, тогда да - это не сюда.
Надо смотреть профайлером по потокам/ядрам где идёт разрастание event loop, желательно смотреть синхронно с таймлайном рендера Сразу будут видны корреляции
Я на работе для таких вещей VTune юзаю
А что такое "таймлайн рендера"?
Ну по факту - поток, который пинает рендер окна
Могу сразу уточнить - я отлаживал такие проблемы в Qt приложках, там потоки по назначениию видно
Я так понимаю, что главный поток и event loop обрабатывает, и всю графику рисует.
Не совсем, но да, главный поток тормозить не комильфо рендер может идти параллельным потоком А может и нет, зависит от библиотеки GUI и архитектуры рендеринга
Что значит не совсем?
Обсуждают сегодня