Linux下如何定位JAVA进程直接内存的泄漏及t

 我来答
绵延的I偏执
2018-06-01 · 超过20用户采纳过TA的回答
知道答主
回答量:61
采纳率:55%
帮助的人:5.5万
展开全部

问题1:top的RES值和JAVA堆内存之间到底是一个什么关系?
——大概1、2个月有个帖子讨论过,挺长的,不过一下子找不到了;总的来说,两者很难找到非常精确匹配的计算关系,因为两者统计的口径是不同的;操作系统关心的是被应用程序所占用的,而JVM则只是关心堆中被分配出去的;这里面有JVM自己开销的、有碎片内存无法使用的、还有已使用完毕待回收的 等等问题。
——总的来说,我觉得如果不是为了底层开发之类的问题,不值得在此问题进行深入研究。

问题2:如何定位JAVA进程直接内存的泄漏?
——很遗憾,并没有什么招数来直接定位,否则内存泄露就不会是一个让大家闻风丧胆的问题了;各类工具都只是提供给你一定的手段去发现征兆、缩小怀疑范围,没有说直接帮你定位,那听起来就不是IT而是神话了。
——常规招数就是:范围 与 层次,两个方向不断通过测试和监控来缩小 怀疑范围,从而最终定位内存泄漏点。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式