performance的使用

performance

performance是一种用于监控浏览器运行的时候性能变化的工具,他可以帮助我们观察页面运行时内存的变化,渲染的时长;并分析需要改进优化的地方。

任务管理器

通过shift+esc,我们可以调出浏览器的任务管理器。通过任务管理器我们可以观察页面的

  • 内存占用空间
  • cpu使用率
  • 网络情况
  • 进程ID

在这里插入图片描述
这里我们使用较多的时内存的占用以及cpu的消耗,任务管理器可以实时的查看内存空间的占用,但缺点是,无法看到页面的内存空间占用的趋势图,没有办法很好的分析内存的使用情况

performance工具

在这里插入图片描述

  • 打开控制台(按f12,或打开开发者工具)

  • 点击performance

  • 点击小圆点就可以开始记录页面运行的情况
    在这里插入图片描述

  • 点击stop可以停止记录,并分析运行的情况
    在这里插入图片描述

内存的变化TimeLine

打开memory,可以看到页面在运行的时候内存的随时间的变化趋势图,红色框标识的地方就是内存的变化,通过这个变化我们就知道什么时候在哪里的内存消耗不合理或者有异常,并对代码进行优化
在这里插入图片描述

GC回收

GC在运行的时候,应用程序是停止的,所以频繁的GC会导致程序假死,导致用户有明显的使用卡顿。

我们可以从TimeLine去判断什么时候进行GC回收操作

当存在频繁的内存升高和下降的时候,就说明有频繁的GC回收操作,这是不合理的,也是需要优化的地方
在这里插入图片描述

堆块照查找分离DOM

首先我们得理解什么是分离DOM,DOM有三种形式

  • 存在于DOM树中的DOM元素
  • 垃圾DOM:不存在于DOM树,且没有被引用的DOM元素
  • 分离DOM:不存在于DOM树,但被引用的DOM元素

分离DOM会导致DOM无法被回收,从而造成内存泄漏,通过堆块照的方式,我们可以找到代码中的分离DOM,并进行优化

实例代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>分离DOM</title>
</head>

<body>
  <button id="addDom">addDom</button>
  <script>
    let dom = null
    document.querySelector('#addDom').onclick = function (e) {
    	// 点击按钮的时候,会新建一个dom元素,并保存在全局,但不插入DOM树内,这时就会产生一个分离dom
      dom = document.createElement('div')
    }

  </script>
</body>
</html>

图解
在这里插入图片描述
在这里插入图片描述

疑问
GC回收操作是在一定的时间段内执行,还是当发现内存不足的时候再执行,或是其他?

注:本文章主要是对学习知识进行总结,如有不同观点欢迎讨论

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值