Профилирование Qt приложение с очень сонным, как анализировать результаты?

Я пытаюсь выяснить, почему мое приложение Qt получает задержку в какой-то момент за секунду, эта задержка в секундах происходит при каждой операции добавления в список, и каким образом я использовал бесплатный профилировщик "Очень сонный", и это дало некоторый снимок, который мне трудно анализировать. Вот верхний снимок: прежде всего он показывает, что этот метод winapi занимает много времени:

Name,Exclusive,Inclusive
    GetModuleFileNameA,983.451654,983.451654,87.500001,87.500001,kernel32,[unknown],0 

и нет печати стека. Второй метод, который занимает много времени:

GetLastInputInfo,128.507105,128.507105,11.433579,11.433579,USER32,[unknown],0

и в этой трассировке стека я вижу тяжелые вызовы QSettings::allKeys из QtCore4. Я не вызываю QSettings::allKeys

и тогда у меня есть:

QPixmap::alphaChannel,1.159998,140.493087,0.103208,12.499999,QtGuid4,[unknown],0

и здесь я создаю изображения из информации bytarray, которую я загружаю из Интернета, маленькие изображения 50X50, используя:

QImage thumbnail = QImage::fromData(bytarray );

Как я могу сохранить здесь и, возможно, остановить это приложение задержки?

1 ответ

Решение

Совершенно не по теме, но я рекомендую использовать intel vtune, более удобный в использовании профилировщик. Вы можете визуализировать как загрузку ЦП с течением времени (по потокам), так и время, потраченное на конкретную функцию \ строку кода.

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

Другие вопросы по тегам