Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Fregloin от Июнь 12, 2014, 17:13



Название: Профилирование программы: как узнать от чего прога дохнет (виснет)
Отправлено: Fregloin от Июнь 12, 2014, 17:13
Привет. В двух словах: программа является АРМом, задача которого на основании данных с серверов обновлять состояния графических элементов на сцене.
Элементов довольно много, но в целом изменений в одну единицу времени не много. Данные представлены в виде json.
В качестве парсера используется нативный QJsonDocument/QJsonObject. Сцена QGrpahicsView/QGraphicsScene.
Столкнулся с такой бедой - при работе программы через несколько часов прога иногда подвисает, а иногда и нет. Вобщем как лучше узнать, что является причиной зависания.
Валгринд под линами выдает очень много утечек, особенно в системных либах и либах Qt, а так же ругается на очевидные вещи и понять, где конкретно утечка не представляется
возможным. Прогу разрабатываю под линами, но в конечном итоге она собирается под винду.


Название: Re: Профилирование программы: как узнать от чего прога дохнет (виснет)
Отправлено: Fregloin от Июнь 12, 2014, 17:38
Еще вопрос по освобождению памяти в Qt: память возвращается сразу после удаления QObject или не сразу?
Посмотрел в диспетчере задач, что при смене файла в программе, память не освобождается, хотя сообщения вызываемые из деструкторов говорят об обратном.


Название: Re: Профилирование программы: как узнать от чего прога дохнет (виснет)
Отправлено: Old от Июнь 12, 2014, 18:59
Посмотрел в диспетчере задач, что при смене файла в программе, память не освобождается, хотя сообщения вызываемые из деструкторов говорят об обратном.
Не мониторьте память по диспетчеру, он показывает не совсем ту память.

Память освобождается сразу.