os: centos 8
Язык: c ++
Allocator памяти: Glibc (default), проверенный с tcmalloc
. Описание
Мой процесс часто обновляет большие объекты (2 ГБ+), которые являются сложными по структуре. Я заметил, что RSS (размер набора резидентов) продолжает расти с течением времени, даже когда я удаляю большие объекты перед выделениями новых. < /P>
Например: < /strong> < /p>
[*] Удалить два больших объекта (2.1gb и 2,2gb) < /p>
< /> < /> < /> < /> < /> < /> < /> < /> < /> < /> < /> < /> < /> < /> < /> Новый объект (2,0 ГБ)
[*] ожидаемый RSS: [/b] ~ 4,3gb
[*] Фактический RS: ~ 5.3gb
не используется эффективно. На этот раз RSS вел себя как ожидалось: < /p>
удалить 2,1 ГБ и 2,2 ГБ < /p>
< /li>
allocate 2,0 ГБ < /p>
< /li>
rss: ~ 4,3gb
< /ul>
Вопросы < /strong> < /p>
Является ли фрагментация памяти вероятной причиной такого поведения с распределителем Glibc? Я воспроизводил эту проблему с минимальной демонстрацией?
Подробнее здесь: https://stackoverflow.com/questions/797 ... tion-issue