最近遇到一个内存泄漏的问题,问题确定一个应用程序占用内存一直增加。
cat /proc/$(pid)/smaps文件中heap那段Rssz值一直在增加,而且一直以4K的大小增加,4K是linux一页的大小,而页是虚拟内存空间向物理内存空间映射的基本单元。
查了一下代码中的malloc/new,基本也没啥发现,请教一下这个问题该如何着手?heap上的内存不应该是malloc/new产生的吗?
最近遇到一个内存泄漏的问题,问题确定一个应用程序占用内存一直增加。
cat /proc/$(pid)/smaps文件中heap那段Rssz值一直在增加,而且一直以4K的大小增加,4K是linux一页的大小,而页是虚拟内存空间向物理内存空间映射的基本单元。
查了一下代码中的malloc/new,基本也没啥发现,请教一下这个问题该如何着手?heap上的内存不应该是malloc/new产生的吗?
如果不是生产环境
也许 mtrace
是比 Valgrind
更简易的办法找出 malloc/free 不对称导致的内存泄漏:)
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答798 阅读✓ 已解决
1 回答3.3k 阅读
尝试使用 Valgrind 来调试一下内存泄漏问题吧,用法其文档里都有详细的说明