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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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