前端浏览器内存监控方式

本文介绍了JavaScript内存问题的外在表现,如页面加载延迟、性能下降和内存泄漏,并提供了三种监控内存的方法:浏览器任务管理器、Timeline时序图和堆快照。通过实例展示了如何创建大型数组导致内存占用上升,以及如何通过堆快照找出未添加到DOM但被引用的分离DOM。监控内存有助于识别和解决性能瓶颈,提升网页应用的效率。
摘要由CSDN通过智能技术生成

内存问题的外在表现

  • 页面出现延迟加载或者经常性暂停
  • 页面持续性出现糟糕的性能
  • 页面性能随时间延长越来越差

监控内存的方式

1. 浏览器的任务管理器

创建一个html页面,通过点击按钮,创建一个大型数组

let btn = document.getElementsByTagName('button')
        btn[0].addEventListener('click',function(){
             arr = new Array(1000000)
        })

打开浏览器,快捷键shift+esc,可以调出浏览器的任务管理器,找到这个界面的监控,右键选上“js监控的内存"
在这里插入图片描述
可以看到内存占用空间和js使用的内存,内存占用空间主要观察的dom元素的变化,js使用空间监听的就是js堆上的变化在这里插入图片描述
快速点击几次按钮,创建数组,可以看到js使用的内存中的实际大小会变化
在这里插入图片描述

2.timeLine时序图可以记录内存的变化

同样以刚才的代码测试,运行后F12调出控制台,点击performance选项,点击录制,在页面上多次点击按钮,创建数组后,停止录制,查看内存结果
在这里插入图片描述
在这里插入图片描述
可以看到内存随着时间的变化,其实就是点击之后创建数组内存飙升,随后垃圾回收,内存又被释放

3. 堆快照查找分离DOM

DOM元素并不是都在dom树上,有些dom创建之后没有添加到dom树,但却被引用,称为分离dom
创建一个循环,点击按钮之后调用循环,生成li标签,在堆快照中可以看到这些变化
首先运行代码,创建一个快照
在这里插入图片描述
输入detached,可以看到有一个分离dom,这是代码中创建的一个url
在这里插入图片描述
然后点击按钮,生成li,并将li添加到url中,再次创建快照,可以看到创建了很多li标签
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

问也去

创作不易,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值