我编译了一个C ++代码(C ++ 11,带有STL库)并在我的MAC上运行它。随着模拟的进行,我注意到一段时间后,我硬盘上的空间开始被占用,如果我不停止代码,它可以冻结我的机器。我尝试valgrind
(强制要求较小的问题)找到任何内存泄漏,但我不知道。不幸的是,实际问题的规模太大,以至于它不会出现问题。可以在其上运行valgrind
。
可能是什么问题?这是潜在的内存泄漏吗?
PS:如果有帮助,我使用OS X 10.9.5并使用g++
命令编译我的CPP代码。
编辑:检查Activity Monitor
,内存似乎不会在我的MAC上不断增加。这使它更加奇特。
edit2:我能够在我的代码中找到问题所在。 std::vector
被错误地通过push_back
电话不断延长。这就是valgrind
没有报告内存泄漏的原因。有趣的观察:在OSX上,随着程序规模变大,实际的RAM没有用完。 OSX决定使用硬盘空间。在Linux(CentOS)上,RAM一直被代码占用,直到OS杀死了这份工作。