Performance的基础使用

  • 进入开发人员工具面板,选择性能

  • 开启录制功能,访问具体界面

  • 执行用户行为,一段时间后定制录制

  • 分析界面中记录的内存信息

内存问题的体现

=================================================================

  • 页面出现延迟加载或者经常性暂停 — 频繁的垃圾回收

  • 页面持续性出现糟糕的性能 — 内存膨胀

  • 页面的性能随时间延长越来越差 — 内存泄漏

监控内存

==============================================================

界定内存问题的标准


  • 内存泄漏 — 内存使用持续升高

  • 内存膨胀 — 在多数设备上都存在性能问题

  • 频繁的垃圾回收 — 通过内存变化图进行分析

监控内存的几种方式


  • 浏览器任务管理器

  • 可以直接以数值的形式,将我们当前应用程序在执行过程中内存的变化体现出来

  • Timeline时序图记录

  • 直接把我们应用程序执行过程中所有内存的走势以时间点的方式呈现出来,有了这张图很容易做判断

  • 堆快照查找分离DOM

  • 有针对性的查找我们当前的界面对象中,是否存在分离的DOM,因为分离DOM的存在就是一种内存泄漏

任务管理器监控内存

===================================================================

  • 如果我们最后一列小括号内的数值一直增大,那就意味着这个内存是有问题的

  • 具体来说是什么问题当前这个工具就显得不是特别好用了,因为它只能帮助我们发现这个地方有没有问题,如果说我们想定位问题时,他就不太好用了

  • 在这个地方我们可以直接通过shift + esc调出任务管理器

  • 找到我们想要去监控的具体脚本,也就是说web页面

  • 选中之后如果说没有JS这一列我们可以直接右键然后勾选

  • 调整完后我们只需要关注两列

  • 第一列为当前DOM节点占用的内存,一般情况也是不变为好,如果要变的话就证明我们当前界面存在频繁的DOM操作

  • 第二列为最后的JS内存,在这里我们要关注的就是小括号内的数值,得出的结论就是如果小括号里的数值一直增加而没有变小的过程,就意味着我们的内存就一直往上走,而没有GC消耗,所以这个时候就有问题了

Timeline记录内存

======================================================================

  • 任务管理器可以帮助我们发现问题,但是具体定位的话就显得不是很方便

  • Timeline — 通过时间线记录内存变化的方式 — 更精确的定位到我们当前内存的问题与那一块代码是相关的,或者说在什么时间节点上发生的

堆快照查找分离DOM

====================================================================

  • 什么是分离DOM

  • 界面元素存活在DOM树上

  • 垃圾对象时的DOM节点

  • 分离状态的DOM节点

  • 总结:

  • 我们可以利用浏览器当中提供的堆快照的功能,然后把我们当前的堆进行性拍照,拍照结束后找这里边是否存在一些分离DOM,因为这个分离DOM在界面中不体现,但是在内存中的确存在,所以这个时候它是一种内存的浪费,我们要做的就是定位到我们的代码里的那些分离DOM所在的位置,然后想办法给清除掉

判断是否存在频繁GC

====================================================================

  • 为什么需要知道是否存在频繁的垃圾回收

  • 当GC工作时应用程序是停止的

  • GC频繁工作而且时间过长,对web应用很不友好

  • 因为它会处于一个假死的状态,对于用户来说就会感觉到整个应用有点卡顿
    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

最后:

总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。

面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。

点击这里领取Web前端开发经典面试题

也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。

点击这里领取Web前端开发经典面试题

  • 26
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值