截屏
1 | Devtools提供了过程截屏的能力, 用户可以直观地看到页面的选过程 |
vite build
1 | 托管dist文件 |
performance API
perfomance.now()
1 | performance.now() |
度量首屏
1 | FP(first paint) 第一次绘制时间 |
度量流畅度的指标
1 | FPS 每秒传输帧数, 达到60fps就会让用户感觉到非常流畅 |
最佳实践 Core Web Vitals
1 | LCP: 首屏视图中最大的元素的渲染时间 |
TTFB
1 | 指客户端从发起请求到接收到服务器响应的第一个字节的时间, 能够在前端比较客观的反应后端的耗时 |
图片使用 base64 的优缺点
1 | 可以减少一个图片请求的开支 |
WebPageTest
1 | WebPageTest是常用的线上性能分析工具, 能对线上的页面进行性能分析, 生成的报告也非常丰富, 除了自身的分析报告, 还包括DevTools timeline, lighthouse报告, 视频对比等. |
RTT
1 | Round-Trip Time 往返延迟 |
TCP 的连接
1 | 客户端向服务器发送SYN, 传输seq=X |
对称加密
1 | 用同一个秘钥进行加密和解密 |
非对称加密
1 | 有一组密钥 分为公钥和私钥 私钥只能一人保管, 公钥可以公布给任何人 |
SSL/TSL 握手
1 | 客户端校验服务器端的证书 |
HTTP/2
1 | 就http/2而已, 其提高性能的主要手段有, 连接复用, 头部压缩和Server Push |
Server Push
1 | 服务端需要在响应html时返回一个PUSH_PROMISE帧, 同时把需要推送的内容的html一起返回给客户端, 当客户端试图加载css时, 可以根据PUSH_PROMISE帧的ID读取到对应的流 |
http/3
1 | 无论是http/1还是http/2, 都是基于TCP协议的, 这意味着有一些由TCP协议带来的问题很难得到解决 |
压缩和缓存
1 | br压缩比gzip压缩的效果更显著, 但是也会增加服务器端处理耗时 |
内存泄漏和性能
1 | 当页面中出现了比较严重的内存泄漏时, 会产出一下两个结果 |