Профилирование Qt приложение с очень сонным, как анализировать результаты? - PullRequest
0 голосов
/ 06 января 2012

Я пытаюсь выяснить, почему мое приложение Qt получает задержку в какой-то момент на секунду, эта задержка в секундах происходит при каждой операции добавления в список, и каким образом я использовал бесплатный профилировщик "Very Sleepy" и это дало некоторый снимок, который мне трудно анализировать. вот верхний снимок: в первую очередь кажется, что этот метод 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 Ответ

1 голос
/ 06 января 2012

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

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

...