Glibc (malloc/free) память не может быть повторно используетсяC++

Программы на C++. Форум разработчиков
Anonymous
Glibc (malloc/free) память не может быть повторно используется

Сообщение Anonymous »

Env Config:
System: centos8 < /p>
Описание задачи:
Мой процесс часто обновляет большие объекты (2G+, этот объект очень сложный). Я обнаружил, что RSS постоянно повышается, даже если я сначала удаляет один или несколько более крупных объектов, а затем добавляю, что не только что не удаляет 2.2g, но не добавляется 2.2g, но не добавляют 2.2g, но не добавляют 2.2g, но не добавляют 2.2g, но не добавляют. 4.3g) < /p>
Посмотрев некоторую информацию, я догадался, что она может быть вызвана фрагментацией памяти, поэтому я связал свою программу с tcmalloc < /code>.
и провести вышеуказанный эксперимент (сначала удалить 2.1g 、 2.2g и добавить 2,0G, RSS - 4,3 г, это являются ожидаемые данные) < /p>
、> Вопросы: < /p>
Как я уже упоминал выше, я просто предполагаю, что это вызвано фрагментацией памяти. Мне не ясно о конкретной причине такой разницы (почему ее нельзя использовать повторно), а также о том, как ее следует воспроизвести с помощью небольшого демо -кода.
Есть ли какие -либо команды или инструменты, которые могут просматривать фрагментацию памяти

Подробнее здесь: https://stackoverflow.com/questions/797 ... -be-reused

Вернуться в «C++»