博客
关于我
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/

你可能感兴趣的文章
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从Oracle11G同步数据到Mysql_亲测可用_解决数据重复_数据跟源表不一致的问题---大数据之Nifi工作笔记0065
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
NIFI同步MySql数据源数据_到原始库hbase_同时对数据进行实时分析处理_同步到清洗库_实际操作06---大数据之Nifi工作笔记0046
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
【Flink】Flink 1.9 版本 web UI 突然没有日志
查看>>
NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
查看>>
NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_处理器介绍_处理过程说明---大数据之Nifi工作笔记0019
查看>>
NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_实际操作---大数据之Nifi工作笔记0020
查看>>
NIFI大数据进阶_Json内容转换为Hive支持的文本格式_实际操作_02---大数据之Nifi工作笔记0032
查看>>