我有一个相当复杂的系统,有30个应用程序在运行。一个非常复杂的C++应用程序正在泄漏内存,我想我已经修复了它。如何检测应用程序是否泄漏内存?
什么我迄今所做的是:
- 我执行使用valgrind's memcheck的应用程序,它检测到没有问题。
- 我监视使用htop应用程序,我注意到,虚拟和剩余内存不增加
- 我刨运行valgrind's massif,看看它是否采用新的内存
的问题是,我怎么能确保没有泄漏?我想如果虚拟内存停止增长,那么我可以确定没有泄漏。当我测试我的应用程序时,我会触发内存分配和释放几次的循环,以确保。
我知道应用程序分配内存的条件,当然,我会触发它们来测试应用程序。问题是我可以检查什么以确保没有泄漏? – 2013-05-02 06:54:39
您需要知道应用程序的内部工作流程,特别是当(某些时间点或某些其他事件)分配的内存应该再次释放时。 – scai 2013-05-02 07:02:44
我知道应用程序的内部工作流程。我创建了它:)我也创建了单元和功能测试,但这不足以错过内存泄漏。 – 2013-05-02 07:04:27