如何释放地图上字符串使用的内存

时间:2017-03-17 20:29:31

标签: c++

我已经宣布了两张地图。每个中的第一个是符号。 out将符号映射到ofstream,而message_strs将符号映射到一个字符串,该字符串连接为符号接收的消息。目标是在message_strs中存储尽可能多的消息,以减少我必须写入文件的次数。我尝试了两种方式,这种方式更快。以下是这些内容:

std::map<std::string, std::shared_ptr<std::ofstream>> outs;
std::map<std::string, std::string> message_strs;

当字符串的长度足够大时,(500000)我将它写入ofstream并删除字符串,如下所示:

*outs[symbol] << message_strs[symbol];
message_strs[symbol] = "";

我正在监视任务管理器的内存使用情况。我注意到,当写入发生时,我的程序进程内存没有减少。除了将地图上的字符串设置为空字符串以释放内存之外,我还需要做些什么吗?

1 个答案:

答案 0 :(得分:0)

解除分配通常在C运行时处理,而不是通过操作系统传递。