Свободная память, используемая std::string

У меня есть struct, которая выглядит так:

struct queue_item_t {
    int id;
    int size;
    std::string content;
};

У меня есть std:: vector, который заполняется многими из них из запроса к базе данных.

При обработке каждого элемента файл считывается с диска, и его содержимое помещается в элемент строки content. Элемент обрабатывается (анализируется content), и я выполняю .clear()для строки, чтобы не занимать всю память.

Однако это не освобождает память. У меня есть сотни тысяч обрабатываемых элементов, и в конечном итоге использование памяти превысит доступное, и приложение будет уничтожено Linux по причине «недостаточно памяти».

Как освободить память, используемую этими строками?

8
задан Thomas Daugaard 11 June 2012 в 11:02
поделиться