博客
关于我
Performance的基础使用
阅读量:526 次
发布时间:2019-03-08

本文共 1522 字,大约阅读时间需要 5 分钟。

Performance工具介绍

  • 关于GC的目的就是为了实现内存空间的良性循环
  • 良性循环的基础是对内存空间有一个合理的使用
  • 时刻关注才能确定是否合理
  • Preformance提供多种监控方式

总结:

  • 通过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应用很不友好
    • 因为它会处于一个假死的状态,对于用户来说就会感觉到整个应用有点卡顿
  • 所以就要想办法确定当前应用中是否存在着频繁的回收
    • Timeline中频繁的上升下降
    • 任务管理器中数据频繁的增加减小

Performance总结

  • 谷歌浏览器提供的一个性能工具
  • Performance使用流程
  • 内存问题相关分析
    • 内存泄漏
    • 内存膨胀
    • 频繁的垃圾回收
  • Performance 时序图监控内存变化
  • 任务管理器监控内存变化
  • 堆快照查找分离DOM

转载地址:http://vmwiz.baihongyu.com/

你可能感兴趣的文章
Vue3.0 性能提升主要是通过哪几方面体现的?
查看>>
NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
查看>>
NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
查看>>
NLP、CV 很难入门?IBM 数据科学家带你梳理
查看>>
NLP三大特征抽取器:CNN、RNN与Transformer全面解析
查看>>
NLP入门(六)pyltp的介绍与使用
查看>>
NLP学习笔记:使用 Python 进行NLTK
查看>>
NLP度量指标BELU真的完美么?
查看>>
NLP的不同研究领域和最新发展的概述
查看>>
NLP的神经网络训练的新模式
查看>>
NLP采用Bert进行简单文本情感分类
查看>>
NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
查看>>
NLP项目:维基百科文章爬虫和分类【02】 - 语料库转换管道
查看>>
NLP:从头开始的文本矢量化方法
查看>>
NLP:使用 SciKit Learn 的文本矢量化方法
查看>>
NLTK - 停用词下载
查看>>
nmap 使用总结
查看>>
nmap 使用方法详细介绍
查看>>
nmap使用
查看>>
nmap使用实战(附nmap安装包)
查看>>