【发布时间】:2010-10-15 09:56:59
【问题描述】:
我有一个应用程序可以进行蒙特卡罗模拟。每次运行时,都会将一个 12MB 的文件加载到 std::vector<MyData> 中。加载和存储数据的对象由 boost::shared_ptr 引用,当运行结束时,该对象会从堆栈中删除。
我在 Windows 任务管理器中看到应用程序的内存使用量增长到大约 1GB(在运行 80-90 次之后),但它通常会下降到 50MB(并开始增长以用于下一次运行)。所以我想知道这是内存泄漏还是只是正常行为。我应该/我可以做些什么来明确释放向量中的内存或其他东西吗?
感谢提示,
菲利普
【问题讨论】:
-
我不知道,但也许你应该考虑使用另一个分配器,看看会发生什么。霍德就是一个很好的例子。 (prisms.cs.umass.edu/emery/hoard)
-
@the_drow - 你真的会在不完全了解内存使用情况的情况下替换堆管理器吗?
-
@Steve:不,不是真的。但是使用和不使用分析可以让您了解到底发生了什么。
标签: c++ windows memory-leaks