【发布时间】:2017-04-28 05:16:57
【问题描述】:
我有一个 GUI 应用程序,其中包含一个用于显示大量模拟蚂蚁的 CView。
我创建了一个 shared_ptr 向量来保存模拟控制器(如果我打算打开更多视图,有很多)。每个控制器都包含许多循环依赖的 shared_ptr。
当我开始我的模拟时,我打开我的任务管理器并看到程序内存增加,直到程序停止(例如 3000MB)。我关闭所有视图并调用创建的 Reset 方法来清除所有用于存储输入和输出数据的容器或向量以及控制器。然而,我仍然看到 3000MB 没有变回 3MB 或任何其他类似的较小数字,例如。
我有内存泄漏吗?因为如果我再次开始运行我的模拟,所提交或使用的内存会变成越来越大的数字,而我认为应该在调用清除方法后立即将其重置为可能的最低数字。
【问题讨论】:
-
请发布代码。例如,“调用创建的 Reset 方法来清除所有用于存储输入和输出数据的容器或向量以及控制器”并没有真正告诉我们任何事情,除了你认为你正在做的事情会释放和取消提交内存.