У меня есть std :: vector класса OGLSHAPE.Это обычное поведение для std :: vector?
Каждая форма имеет вектор структуры SHAPECONTOUR, который имеет вектор с плавающей точкой и вектор вектора double. он также имеет вектор структуры структуры, в которой есть вектор float.
Первоначально моя программа запускается с использованием 8,7 МБ оперативной памяти. Я заметил, что когда я начал заполнять эти данные, добавив удвоение и поплавки, память быстро поднялась, а затем выровнялась. Когда я очищаю вектор OGLSHAPE, используется еще около 19 МБ. Затем, если я нажму около 150 фигур, то очистите их, теперь я использую около 19.3 МБ бара. Я бы подумал, что это логично, если в первый раз это изменилось с 8,7 до 19, что в следующий раз это будет примерно до 30. Я не уверен, что это такое. Я думал, что это утечка памяти, но теперь я не уверен. Все, что я делаю, это push-числа в std :: векторы, ничего больше. Поэтому я ожидаю вернуть всю свою память. Что может быть причиной этого?
Благодаря
* редактировать, хорошо его фрагментации памяти от распределения много мелких вещей, как это может быть решена?
На какой платформе вы работаете и как вы измеряете использование памяти? –
«Что может быть причиной этого?» Утечка памяти в OGLSHAPE может легко это сделать. – SigTerm
Вы можете опубликовать упрощенную версию своего кода? – nas