课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
内存泄漏问题是java编程开发程序员在开发软件过程中会遇到的编程问题之一,而今天我们就一起来了解一下,判断内存泄漏的方法及解决方案。
1、判断是否存在内存泄漏
观察相邻的snapshot快照(项目较大时不好判断,且干扰很多)
观察内存时间轴是否在循环操作的过程中每次都有未释放的内存
使用脚本模拟长时间操作,观察内存占用数值(需要手动触发GC防止误判)
注意:这个过程需要在线上环境进行,因为开发环境由于一些未知原因(可能是webpack热更新引用导致)在某些情况会出现内存泄漏,但实际上发布后并没有这个问题。(例如打包后使用http-server模拟线上环境进行验证)
2、如何解决内存泄漏
内存泄漏的原因五花八门,没有万能的解决办法,但只要定位了原因,就能够针对性的进行修复(一般来说不会有结构性的问题),这个优化的主要难点也就是在定位上,往往是花数小时定位,然后花数分钟解决。
观察内存记录看是否为已知的数据结构,是否经常出现某个组件或函数
观察控制台看是否有报错或警告信息
观察排查模块是否有定时或防抖函数设置,是否有绑定监听事件等
暴力定位(注释二分法)
一般来说对项目代码越熟悉,就能越快的从海量的信息中找到问题所在的位置,但有时候也可能被一些无用的信息误导导致走一堆弯路,所以对代码完全不熟悉或者光是看引用链找不到问题的时候,暴力定位也不是不能接受————起码好过钻牛角尖。
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。