У меня есть код, который периодически обновляет значения карты protobuf. Этот код упрощен для ясности.
void my_periodically_called_function() {
my_protobuf_map->Clear();
MyObject obj;
obj.set_value(data);
my_protobuf_map['my_key'] = obj;
}
Что происходит, так это то, что память программы продолжает расти с каждой итерацией. После просмотра файла protobuf map.h кажется, что после очистки карты и повторного добавления элементов [] просто выделит больше данных на арену (без очистки каких-либо более старых данных), что, очевидно, нежелательно.
Что такое самый удобный способ решить эту проблему? Мне нужен хороший способ удалить определенную c память с арены.
Самый простой способ решить эту проблему - удалить Clear (), но я хотел бы сохранить это, чтобы избежать странные ошибки при сохранении старого состояния.
Заранее спасибо.