Был ли случай, когда утечка памяти все еще достижима? - PullRequest
2 голосов
/ 15 апреля 2019

При использовании valgrind есть раздел для все еще достижимой утечки, но в конечном итоге она должна быть устранена ОС. Есть ли случаи, когда это будет проблемой? Я думал о случаях с многопоточностью, возможно, когда ОС не устранит все еще достижимую утечку в дочернем процессе, пока не завершится основной процесс, но я не уверен, что это также возможный случай.

По существу, существует ли проблема с неосвобождением памяти, которая используется до конца выполнения (выхода из программы)?

1 Ответ

2 голосов
/ 15 апреля 2019

Конечно.Скажем, программа, которую вы запускаете под Valgrind, является тестовым примером для некоторого удаленного обработчика запросов.В производственном процессе сервер будет обрабатывать множество запросов;вероятность ограничена только общим временем безотказной работы системы.Таким образом, каждый запрос должен очищать свой мусор.

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

...