前端性能分析工具及使用

  Lighthouse

  Lighthouse (谷歌浏览器的插件商店中搜索并安装,浏览器中点击F12,开发者工具中可使用)是 Google 开发的一款工具,用于分析网络应用和网页,收集现代性能指标并提供对开发人员最佳实践的意见。只要能够使用谷歌就可以使用Lighthouse。

  性能:就是对上述指标进行测试

  可访问性(Accessibility)

  Accessibility 辅助功能 : 无障碍设计,也称为网站可达性。是要让所创建的网站对所有用户都可用/可访问,不管用户的生理/身体能力如何、不管用户是以何种方式访问网站。考虑残障用户(视力障碍)

  最佳实践(Best Practices)

   最佳实践 : 实践性检测,如网页安全性,如是否开启 HTTPS、网页存在的漏洞等

  SEO 搜索优化

  SEO(Search Engine Optimization):搜索引擎优化检测,如网页 title 是否符合搜索引擎的优化标准等。

  搜索引擎优化 (SEO) 通常是指对网站的部分内容进行细微的修改。单独来看,这些修改可能只是细微的改进,但与其他优化结合后,则可能会对您网站的用户体验以及在搜索结果中的表现产生显著影响。

  Chrome(Performance)

  谷歌浏览器调试工具栏中自带的工具

  实验

  本次实验在一个开源的项目下进行的性能测试实验演示,地址为https://github.com/pobusama/chrome-preformance-use-demo,其中运行的是demo2,界面如下:

  为了能够更好的演示实验,该项目设置了随机添加蓝色方块,重复点击add按钮,模拟用户的不断且重复操作,可以看到蓝色的方块会流动的越来越卡,当点击Optimize按钮就会流畅一些,因为做了一些优化操作(具体见代码,此处只是演示效果,分析性能)。

录制

多次点击Add按钮,直至页面出现卡顿,然后点击录制按钮,录制一段时间;

接着点击Optimize按钮,形成优化后的效果,录制一段时间,然后点击“停止”,等待生成性能报告

生成性能报告

图中:1是概览面板

2和3是线程面板

左侧是优化前的性能评估数据,右侧是优化后的性能评估数据

在概览面板中,最上边的数据代表FPS数据 ,FPS数值越高,画面越丝滑。(fps是帧率)

1区域出现了大量的红色色块,这代表在这段运行时间中,画面掉帧明显,颜色越红越严重,而右侧区域没有红色色块证明没有掉帧现象。

1区域中的下半部分,是CPU的使用率和使用方式。黄色(执行js),紫色(渲染),绿色(绘制到页面)以及其他颜色。

数字3所在区域,为浏览器各个进程的具体活动,这里关注主线程(Main)即可

查看某段时间具体的评估数据

点击概览模块的某块时间。(优化前)

通过鼠标滚轮或者点击或拖拽概览面板的方式查看特定的时间段,为了查看优化前是哪里的性能出现了问题,我把查看概览面板缩小成只能看到执行了3个任务的大小。

单个任务从上往下为调用关系,Anemotion Frame Fired (动画帧已触发)调用了Function Call (函数调用), 而Function Call 调用了app.update

继续缩小查看范围,直到我们只看到一个任务执行。

在面板中我们可以点击某一个色块查看详情,跟随调用栈的足迹,我们找到即​​app.update​​色块,查看图中蓝色区域的详情,这里显示执行自身Js花费了19ms,接下来对Js调用的rendering花费了152ms,从图中可以看到在​​app.update​​色块有无数的紫色小方块,而等待这些紫色小方块的执行延长了整个Js的执行时间。

调整查看范围,直到看到优化后的具体几个任务。(优化后

看到优化后的面板app.update色块所有的紫色小方块都消失了,而紫色小方块是跟布局有关的活动,看到这里我们可以锁定优化前的js代码中存在改变布局的操作,需要进入代码层面。

点击进入代码查看

可以看到,每个函数的耗时也都显示在左侧,右侧有源码地址,点击就可以跳到 Sources 对应的代码。然后对代码进行优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2979281.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

2024年最新版云开发cms开通步骤,开始开发微信小程序前的准备工作,认真看完奥!

小程序官方有改版了,搞得石头哥不得不紧急的再新出一版,教大家开通最新版的cms网页管理后台 一,技术选型和技术点 1,小程序前端 wxml css JavaScript MINA原生小程序框架 2,数据库 云开发 云数据库 云…

HTTP慢连接攻击的原理和防范措施

随着互联网的快速发展,网络安全问题日益凸显,网络攻击事件频繁发生。其中,HTTP慢速攻击作为一种隐蔽且高效的攻击方式,近年来逐渐出现的越来越多。 为了防范这些网络攻击,我们需要先了解这些攻击情况,这样…

C++判断一个点是否在一个在任意空间中的长方体中

目录 不旋转的长方体计算旋转矩阵及旋转后的长方体计算旋转矩阵计算旋转后的长方体 判断点是否在旋转后的长方体内 不旋转的长方体 如果这个长方体是规则的,不进行任何旋转,可以先计算长方体的BoundingBox,判断点是否在3D的BoundingBox中即可…

软硬件无缝集成:新加坡量子公司首创下一代量子集成平台

为了充分发挥量子系统的性能,已经公认的一个关键方法是在硬件和软件层之间实现紧密集成。这种集成使得软件能够充分利用硬件的所有特性,以实现最佳性能。随着行业努力开发能够提供量子优势的系统,实现这种高性能显然是非常必要的。 Horizon的…

Python学习从0开始——项目一day02数据库连接

Python学习从0开始——项目一day02数据库连接 一、在线云数据库二、测试数据库连接三、数据库驱动介绍四、SQL执行4.1插入测试数据4.2安装数据库连接模块4.3测试SQL语句执行4.4执行SQL的固定步骤及示例 一、在线云数据库 找了一个在线数据库,需要邮箱注册&#xff…

Linux系统中安装MySQL

1、在电脑中安装虚拟机 2、df -h查看光盘是否挂载,没挂载用mount -o ro /dev/sr0 /media命令挂载 3、进入etc/yum.repos.d目录查看仓是否配置,若配置进行下一一步,未配置则进行配置 配置软件仓库 [rootlocalhost yum.repos.d]# vim rhle.r…

tcp inflight 守恒算法背后的哲学

tcp inflight 守恒拥塞控制的正确性 很久以前我开始纠结 tcp 锯齿,很多年后我知道这叫 capacity-seeking,甚至说 tcp 属于 capacity-seeking protocol 的原因就是它早已深入人心的 aimd 行为,而该行为生成了 tcp 锯齿。 在消除锯齿&#xf…

归并排序精讲

一.定义 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子…

AI交互数字人对教育领域有何优势?

AI交互数字人不仅能够跨越物理距离的限制,以数字人形象为学生提供“面对面”教学互动体验,还能根据学生的具体需求提供个性化的知识解答。如天津大学推出了数字人老师,以刘艳丽教授形象1:1仿真打造的2.5D数字人,能够应…

【深度学习】行人跌倒行为检测软件系统

行人跌倒检测系统在各个领域的应用都对社会的整体健康、安全和福祉产生积极影响,为人们的生活和工作提供了更加安全和可靠的环境, 本文主要使用YOLOV8深度学习框架自训练了一个“行人跌倒检测模型”,基于此模型使用PYQT5实现了一款界面软件用…

MATLAB实现蚁群算法栅格路径优化

蚁群算法是一种模拟自然界中蚂蚁觅食行为的优化算法,常用于解决路径规划问题。在栅格路径优化中,蚁群算法可以帮助找到从起点到终点的最优路径。以下是蚁群算法栅格路径优化的基本流程步骤: 初始化参数: (1)设置蚂蚁数量&#xff…

Rest微服务案例

Rest 父工程构建microservicecloud-api公共子模块Modulemicroservicecloud-provider-dept-8001部门微服务提供者Modulemicroservicecloud-consumer-dept-80部门微服务消费者Module 以Dept部门模块做一个微服务通用案例 Consumer消费者(Client)通过REST调…

Go 堆内存分配源码解读

简要介绍 在Go的内存分配中存在几个关键结构,分别是page、mspan、mcache、mcentral、mheap,其中mheap中又包括heapArena,具体这些结构在内存分配中担任什么角色呢? 如下图,可以先看一下整体的结构: mcach…

Maxwell安装使用和简单案例

一、解压 cd /opt/software/ ​ tar -zxvf maxwell-1.29.2.tar.gz -C /opt/module/ ​ cd /opt/module/ 二、MySQL 环境准备 1、修改 mysql 的配置文件 修改 mysql 的配置文件,开启 MySQL Binlog 设置 vi /etc/my.cnf 添加以下内容 server_id1 log-binmysql-…

跟着野火从零开始手搓FreeRTOS(6)多优先级的配置

在 FreeRTOS 中,数字优先级越小,逻辑优先级也越小。 之前提过,就绪列表其实就是一个数组, 里面存的是就绪任务的TCB(准确来说是 TCB 里面的 xStateListItem 节点),数组的下标对应任务的优先级&a…

GUI简述

GUI概述 swing概述 swing是java设计的GUI包,该包包括了GUI中各种组件支持 swing中的组件包括两大类,容器(例如窗口,对话框,面板)和功能组件(如按钮,输入框,菜单等&…

【RSGIS数据资源】2018年北京森林站东灵山样地无人机遥感生态数据集

文章目录 一、数据集基本信息二、数据结构和内容三、 数据集质量控制(一) 产生方式(二) 数据源说明(三) 数据采集、加工处理方法 四、 数据使用 一、数据集基本信息 说明数据集基本描述信息,包…

Linux安装部署Tomcat

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Linux安装部署Tomcat //将tomcat压缩包解压到对…

电脑上如何将png图片改为jpg?这几个方法一定用的上

在我们的日常工作、学习中,经常需要用到不同的图片格式类型,比如jpg、png、gif、tiff等等,这些图片之间有着非常大的区别,静态图片jpg格式,设计工作者常接触到的png,还有我们平时发的动态表情包是gif格式&a…