前端内存问题
内存使用的不合理,直接的表现就是我们的网页卡顿。那内存出现的问题可以分为哪几类呢?
- 1:频繁的触发gc
- 2:程序申请的内存太大,形成内存膨胀
- 3:内存存在泄漏
排查内存的方式
- 如何查看是否频繁触发gc?
- 1:通过performance的timeline中的momery查看内存走势图,查看走势图是否频繁的升高和下降。
如果存在频繁的升高和下降,则可以通过时间轴找到对应时间节点的截屏和performance中Mian模块对应执行的函数,进行排查。
- 如何排查程序申请的内存太大,形成内存膨胀?
- 1:这个现象可能会与机型有关,比如老旧机型本来硬件的资源就不够,也会更容易的造成内存膨胀。
- 需要测试不同的机型,如果大多数机型都出现了内存膨胀,就需要排查和定位我们的代码问题了。
- 确定是代码问题,我们可以通过performance来记录momery的走势图进行排查
- 如何判断内存存在泄漏?
- 1: 通过performance记录momery的走势图,查看内存走势是否一直向上。
- 走势持续的向上,则表示出现内存泄漏。找到上升开始的时间点,找到这个时间点Main对应执行的js函数,进行排查
- 2: 通过dev-tool的momery模块,进行Dom堆快照,在filter输入deta寻找出游离的dom节点,在代码中清除对应的dom的js引用。