前端如何进行网站性能分析及优化性能

简介: 前端如何进行网站性能分析及优化性能

1.分析网站性能常用的方式


1.1 chrome dev Tools

我们经常使用 Chrome Dev Tools 来开发调试,还可以利用它来分析页面性能

开源的自动化工具,可以安装为 Chrome 的扩展插件,也可以命令行直接运行, 它将针对目标页面运行一连串的测试,然后输出一个有关页面性能的评分报告。

优点:

1. 评分报告全面且具有一定的权威性

2. 提供解决方案

3. 发现大的性能问题

缺点:

1. 测试环境较单一,用户群体的环境各有不同,不可以一概之

2. 存在「波动」,不同时刻的访客群体存在差异,数据只能反应当前时刻的「效果」

1.2 第三方收费方案

NewRelic

阿里云ARMS

特点:

自研性能监控系统:在目标页面注入脚本,在约定的时机收集性能指标数据,统一上报数据中心, 数据中心集中整合生成报表,再根据报表分析性能。

优点:

1.数据全面,可采集到所有用户各个环境下的性能,生成直观的分布图

2.数据真实,来源于真实用户

3.反馈及时,优化后效果可及时地在报表上反馈出来

缺点:

依赖较多,数据中心和脚本都需要自主开发,相对成本较高 所谓监控,实际上就是性能「真实跟踪」,虽然依赖较多,但对性能指标的反馈最为真实有效。

2.介绍一个常用的性能分析工具


LightHouse

2.1 特点:

Lighthouse 是一个开源的自动化工具,用于改进网络应用的质量。只要为 Lighthouse 提供一个需要审 查的网址,它将针对此页面运行一连串的测试,然后生成一个有关页面性能的报告。 并网站进行分析,将分析结果以可视化的方式展示给开发者,甚至还指出了可以优化的地方。

2.2 使用方式

Chrome 开发者工具(DevTools)

Chrome 扩展

Node CLI 推荐:https://github.com/GoogleChrome/lighthouse#using-the-node-cli

Node Module

2.3 代码示例

//安装
npm install -g lighthouse
//生成报告 并在浏览器中打开
lighthouse http://kaikeba.com --view
//报告格式是json,保存在当前目录
lighthouse http://kaikeba.com --output=json --output-path=./report.json
//设置浏览器的窗口尺寸
//lighthouse http://kaikeba.com --chrome-flags="--window-size=1190,660"
//模拟器设为桌面
//lighthouse http://kaikeba.com --emulated-form-factor=desktop

2.4 性能报告

Perfermance 性能分析

Accessibility 可访问性

Best Practices 最佳实践

SEO 搜索引擎优化

Progressive Web App 是否集成pwa

3.准确衡量网站的性能


主要看一下几个方面:

1. 是否发生? 导航是否成功启动?服务器是否有响应?

2. 是否有用? 是否已渲染可以与用户互动的足够内容?

3. 是否可用? 用户可以与页面交互,还是页面仍在忙于加载?

4. 是否令人愉快? 交互是否顺畅而自然,没有滞后和卡顿

3.1 是否发生

当用户访问一个网站的时候,关心的第一个问题永远是“是否发生”——浏览器是否成功地把我的请求发 送出去,而服务器是否已经知道并开始处理我的请求。

TTFB (Time to First Byte) 首字节到达的时间点。

FP (First Paint) 首次绘制,标记浏览器渲染任何在视觉上不同于导航前屏幕内容的时间点。

FCP

First Contentful Paint

首次内容绘制,标记浏览器渲染来自 DOM 第一位内容的时间点,内容可能是文本、图像等元素。 测试加载速度的体验,页面最主要的内容何时呈现。

3.2 是否有用  

当用户确定自己的请求发生了后,就会开始关心第二个问题:“是否有用?” 例如,用户在使用天气应用,在确定页面有反应了后,就开始关心,什么时候能展现有用的内容,从而 得知今天的天气。

LCP

Largest Contentful Paint

最大内容绘制时间

计算从页面开始加载到用户与页面发生交互(点击,滚动)这段时间内,最大元素 绘制的时间,该时间会随着页面渲染变化而变化,因为页面中的最大元素在渲染过程中可能会发生改 变。

SI

Speed Index

速度指标,填充页面内容的速度,取开始加载到最后完成渲染,每一时刻页面未完成度的积分

3.3 是否可用

在用户得到了有用的信息后,用户就会基于得到的信息作出反应,这就是页面“是否可用?

例如看到了 新闻后,想要评论。TTI、FID、TBT 就是回答这些问题的指标。

TTI

Time to Interactive

可交互时间,用于标记页面已进行视觉渲染并能可靠响应用户输入的时间点。页面可能会因为多种原因 而无法响应用户输入,例如页面组件运行所需的 Javascript 尚未加载,或者耗时较长的任务阻塞主线 程。TTI 指标可识别页面初始 JavaScript 已加载且主线程处于空闲状态(没有耗时较长的任务的时间点。

TBT

Total Blocking Time

总共阻塞时间,计算的是从 FCP 到 TTI 之间,主线程阻塞的总时间。阻塞时间是指单次任务占用主线程 超过 50 ms 的部分。

FID (First Input Delay)

首次输入延迟,指用户首次输入到页面响应的时间。我们都知道第一印象的重要性,网站亦是如此。首 次输入延迟会成为用户对网站很重要的第一印象,决定用户有可能成为忠实用户或者弃之而去。值得注 意的是,FID 仅关注用户离散的操作,如点击,轻击,按键等,其他交互如滚动和缩放,并不是 FID 关 注的,因为通常浏览器会用一个单独的线程来处理它们。

3.4 是否令人愉快

使用是否流畅,有没有发生预料外的视觉偏移。

CLS

Cumulative Layout Shift

累计布局偏移。测量在页面的整个生命周期中发生的每个意外的样式移动所造成的布局偏移分数的总 和。 测试视觉稳定性上的体验,有多少内容发生了意外的偏移。

相关文章
|
15天前
|
前端开发 JavaScript API
惊呆了!这些前端技术竟然能让你的网站实现无缝滚动效果!
【10月更文挑战第30天】本文介绍了几种实现网页无缝滚动的技术,包括CSS3的`scroll-snap`属性、JavaScript的Intersection Observer API以及现代前端框架如React和Vue的动画库。通过示例代码展示了如何使用这些技术,帮助开发者轻松实现流畅的滚动效果,提升用户体验。
86 29
|
15天前
|
监控 PyTorch 数据处理
通过pin_memory 优化 PyTorch 数据加载和传输:工作原理、使用场景与性能分析
在 PyTorch 中,`pin_memory` 是一个重要的设置,可以显著提高 CPU 与 GPU 之间的数据传输速度。当 `pin_memory=True` 时,数据会被固定在 CPU 的 RAM 中,从而加快传输到 GPU 的速度。这对于处理大规模数据集、实时推理和多 GPU 训练等任务尤为重要。本文详细探讨了 `pin_memory` 的作用、工作原理及最佳实践,帮助你优化数据加载和传输,提升模型性能。
49 4
通过pin_memory 优化 PyTorch 数据加载和传输:工作原理、使用场景与性能分析
|
8天前
|
存储 编解码 前端开发
惊!前端新手也能秒懂的高级技巧,轻松提升网页颜值与性能!
本文针对前端新手,介绍了三个简单易学的高级技巧,帮助提升网页的颜值和性能。包括使用CSS框架快速美化网页、优化图片资源加快加载速度,以及利用ARIA属性和媒体查询提高网页的可访问性和响应性。示例代码清晰,适合初学者上手实践。
20 3
|
8天前
|
编解码 前端开发 JavaScript
从入门到精通:揭秘前端开发中那些不为人知的优化秘籍!
前端开发是充满无限可能的领域,从初学者到资深专家,每个人都追求更快、更稳定、更用户体验友好的网页。本文介绍了四大优化秘籍:1. HTML的精简与语义化;2. CSS的优雅与高效;3. JavaScript的精简与异步加载;4. 图片与资源的优化。通过这些方法,可以显著提升网页性能和用户体验。
15 3
|
8天前
|
前端开发 JavaScript UED
惊呆了!这些前端技巧竟然能让你的网站秒变高大上,赶快学起来!
前端技术是网页设计的核心,能够显著提升用户体验和网站竞争力。本文介绍了三种实用的前端技巧:动态背景效果、微交互设计和响应式设计。通过CSS动画和JavaScript,可以实现视觉吸引的动态背景;微交互设计如按钮点击效果能增强用户参与感;响应式设计则确保网站在不同设备上呈现良好效果。这些技巧简单易学,效果显著,值得尝试。
20 3
|
8天前
|
移动开发 前端开发 JavaScript
惊!这些前端技术竟然能让你的网站在移动端大放异彩!
随着互联网技术的发展,移动设备成为主要的上网工具。本文介绍了几种关键的前端技术,包括响应式设计、图片优化、字体选择、HTML5和CSS3的应用、性能优化及手势操作设计,帮助开发者提升网站在移动端的显示效果和用户体验。示例代码展示了如何实现简单的双向绑定功能。
18 3
|
14天前
|
前端开发 JavaScript API
惊呆了!这些前端技巧竟然能让你的网站支持AR/VR体验!
【10月更文挑战第31天】在数字化时代,用户对网页交互体验的要求日益提高,传统二维网页已难以满足需求。本文介绍如何利用前端技术,特别是Three.js,实现AR/VR体验,提升用户满意度和网站价值。通过示例代码,展示如何创建简单的3D场景,并探讨AR/VR技术的基本原理和常用工具,帮助开发者打造沉浸式体验。
31 6
|
14天前
|
编解码 前端开发 JavaScript
前端界的黑科技:掌握这些技术,让你的网站秒变未来感十足!
【10月更文挑战第31天】前端技术日新月异,黑科技层出不穷,让网页更加美观、交互更加丰富。本文通过响应式布局与媒体查询、前端框架与组件化开发等案例,展示这些技术如何让网站充满未来感。响应式布局使网站适应不同设备,前端框架如React、Vue则提高开发效率和代码质量。
27 3
|
15天前
|
JSON 前端开发 搜索推荐
惊!这些前端技术竟然能让你的网站实现个性化推荐功能!
【10月更文挑战第30天】随着互联网技术的发展,个性化推荐已成为提升用户体验的重要手段。前端技术如JavaScript通过捕获用户行为数据、实时更新推荐结果等方式,在实现个性化推荐中扮演关键角色。本文将深入解析这些技术,并通过示例代码展示其实际应用。
47 4
|
17天前
|
缓存 前端开发 JavaScript
前端性能优化:Webpack与Babel的进阶配置与优化策略
【10月更文挑战第28天】在现代Web开发中,Webpack和Babel是不可或缺的工具,分别负责模块打包和ES6+代码转换。本文探讨了它们的进阶配置与优化策略,包括Webpack的代码压缩、缓存优化和代码分割,以及Babel的按需引入polyfill和目标浏览器设置。通过这些优化,可以显著提升应用的加载速度和运行效率,从而改善用户体验。
35 6