Приложение Qt MDI. Смотрю память в htop RES. При открытии новой вкладки память прибавляется (естесственно), при закрытии — не освобождается (плохо). Смотрю утечки в valgrind при завершении — есть, но незначительные и от количества вкладок не зависят. Почитал про htop — говорят что эта тулза она больше для юзера, а не для того, чтоб смотреть утечки. А что нынче есть чтоб смотреть утечки в Ubuntu не завершая приложение? И есть ли смысл обращать внимание на htop?
Здравствуйте, DenProg, Вы писали:
DP>Приложение Qt MDI. Смотрю память в htop RES. При открытии новой вкладки память прибавляется (естесственно), при закрытии — не освобождается (плохо). Смотрю утечки в valgrind при завершении — есть, но незначительные и от количества вкладок не зависят. Почитал про htop — говорят что эта тулза она больше для юзера, а не для того, чтоб смотреть утечки. А что нынче есть чтоб смотреть утечки в Ubuntu не завершая приложение? И есть ли смысл обращать внимание на htop?
Код С++ запрашивает у менеджера памяти (код внутри пользовательской программы) куски памяти произвольного размера.
(В большинстве случаев, много маленьких кусков.)
Менеджер памяти запрашивает у системы страницы памяти. Они фиксированного размера. Конкретный размер зависит от ОС, обычно десятки килобайт.
За счет фрагментации, одно и тоже число аллокаций памяти, одного и тогоже размера, может занимать разное число страниц памяти.
Кроме того, менеджер памяти может не сразу отдавать системе не занятые страницы...
Использовать htop для поиска именно утечек — нет смысла, если только речь не про гигабайты.
Здравствуйте, Chorkov, Вы писали:
C>Здравствуйте, DenProg, Вы писали:
DP>>Приложение Qt MDI. Смотрю память в htop RES. При открытии новой вкладки память прибавляется (естесственно), при закрытии — не освобождается (плохо). Смотрю утечки в valgrind при завершении — есть, но незначительные и от количества вкладок не зависят. Почитал про htop — говорят что эта тулза она больше для юзера, а не для того, чтоб смотреть утечки. А что нынче есть чтоб смотреть утечки в Ubuntu не завершая приложение? И есть ли смысл обращать внимание на htop?
C>Код С++ запрашивает у менеджера памяти (код внутри пользовательской программы) куски памяти произвольного размера. C>(В большинстве случаев, много маленьких кусков.)
C>Менеджер памяти запрашивает у системы страницы памяти. Они фиксированного размера. Конкретный размер зависит от ОС, обычно десятки килобайт.
C>За счет фрагментации, одно и тоже число аллокаций памяти, одного и тогоже размера, может занимать разное число страниц памяти. C>Кроме того, менеджер памяти может не сразу отдавать системе не занятые страницы...
C>Использовать htop для поиска именно утечек — нет смысла, если только речь не про гигабайты.
Хорошо, как проверять утечки в таком случае — что при закрытии вкладки память освобождается?
Здравствуйте, Chorkov, Вы писали:
C>Здравствуйте, DenProg, Вы писали:
DP>>Хорошо, как проверять утечки в таком случае — что при закрытии вкладки память освобождается?
C>valgrind C>
Он же генерит отчет только при завершении приложения, нет?