У меня есть struct
, которая выглядит так:
struct queue_item_t {
int id;
int size;
std::string content;
};
У меня есть std:: vector
, который заполняется многими из них из запроса к базе данных.
При обработке каждого элемента файл считывается с диска, и его содержимое помещается в элемент строки content
. Элемент обрабатывается (анализируется content
), и я выполняю .clear()
для строки, чтобы не занимать всю память.
Однако это не освобождает память. У меня есть сотни тысяч обрабатываемых элементов, и в конечном итоге использование памяти превысит доступное, и приложение будет уничтожено Linux по причине «недостаточно памяти».
Как освободить память, используемую этими строками?