踏歌行

vuePress-theme-reco 踏歌行    2022 - 2025
踏歌行 踏歌行

Choose mode

  • dark
  • auto
  • light
环境和工具
    • Git
    • npm 和 yarn
    • windows快捷键
    • 正则
前端
    • 浏览器学习记录
    • React学习
    • Javascript 进阶语法
    • React工具
    • CSS学习
    • ThreeJS学习
    • 页面卡顿
人工智能
    • ComfyUI学习
    • Python基础
    • PyTorch版深度学习
后端
  • 博客评论功能
  • 文件处理
数据库
  • mysql学习
  • Redis学习
  • Prisma学习
部署
  • Docker基础
  • Dockerfile和docker compose
  • Docker实例
  • Docker网络连接
  • CDN学习
  • Jenkins学习
测试
  • Cucumber学习
  • Jest学习
网络
  • CDN学习
  • HTTP学习
Linux
  • 虚拟机与Linux安装
  • 文本编辑
  • Linux命令
  • Linux安全
  • Windows中CMD和SHELl
其它
  • 我的书单
  • Blender学习
  • 计划
时间轴
author-avatar

踏歌行

36

文章

23

标签

环境和工具
    • Git
    • npm 和 yarn
    • windows快捷键
    • 正则
前端
    • 浏览器学习记录
    • React学习
    • Javascript 进阶语法
    • React工具
    • CSS学习
    • ThreeJS学习
    • 页面卡顿
人工智能
    • ComfyUI学习
    • Python基础
    • PyTorch版深度学习
后端
  • 博客评论功能
  • 文件处理
数据库
  • mysql学习
  • Redis学习
  • Prisma学习
部署
  • Docker基础
  • Dockerfile和docker compose
  • Docker实例
  • Docker网络连接
  • CDN学习
  • Jenkins学习
测试
  • Cucumber学习
  • Jest学习
网络
  • CDN学习
  • HTTP学习
Linux
  • 虚拟机与Linux安装
  • 文本编辑
  • Linux命令
  • Linux安全
  • Windows中CMD和SHELl
其它
  • 我的书单
  • Blender学习
  • 计划
时间轴
  • 前端

    • CSS 学习
      • 样式优先级
    • Javascript 进阶语法
      • React学习
        • 基础
        • 函数式组件
        • 类式组件
        • 路由
        • React Native
        • 实践经验
      • Three.js 学习
        • threejs
      • React工具
        • React deverloper tools 开发者工具插件
        • 一键生成react代码块
      • 浏览器 学习记录
        • 网页开发的文档
        • 存储机制 Web Storage API
        • IndexedDB
        • WebSQL
        • localStorage
        • HTTP缓存
        • HTTP Cookie
        • 无头浏览器
      • 页面卡顿分析
        • 可能的原因
        • Chrome DevTools 工具

    页面卡顿分析

    vuePress-theme-reco 踏歌行    2022 - 2025

    页面卡顿分析


    踏歌行 2023-12-23 浏览器
    阅读量:

    # 可能的原因

    # 长时间占用js线程

    • 浏览器包括js线程和GUI线程,而二者是互斥的

    # 内存占用过高

    • 内存泄漏:
      • 全局变量引起的内存泄露
      • 定时器引起内存泄露
      • dom删除时没有解绑事件
      • 循环引用

    # 渲染不及时,页面掉帧

    • 网络请求太多
    • dom节点太多,渲染的比较慢

    # Chrome DevTools 工具

    # Performance 性能

    官方文档-分析运行时性能 (opens new window)

    知乎-狙杀页面卡顿 (opens new window)

    1. FPS
      • FPS 上方出现红色条时就意味着出现长时间帧(帧率下降)
    2. CPU
      • CPU 中面积图如果充满色彩就表示该时间段 CPU 已达到极限
    3. NET网络
      • 深蓝色表示存在高优先级的资源请求的时间段,浅蓝色表示存在低优先级的资源请求的时间段
    4. HEAP 堆
      • 与开启 Memory 后的 JS heap 线形图 可以录制查看帧数丢弃情况
    5. 火焰图
      • 查看长任务:超过50ms 的任务被称之为长任务,会被红色角标标记。
      • 搜索框:按 Command+F (Mac) 或 Control+F(Windows、Linux)打开底部的搜索框,可对火焰图中的活动进行搜索,支持正则。
    6. 摘要
      • 摘要,展示点选活动或某时间段所有活动的各阶段时间耗时。
    7. Bottom-up 自下而上
      • 通常用于查看选择的时间段中直接花费时间最多的活动。
    8. Call tree 调用树
      • 通常用于查看选择的时间段中导致最多耗时的根活动。
    9. Event log 事件日志
      • 用于按照活动的发生顺序查看活动。

    # Performance insights 性能数据分析

    官方文档-效果数据分析 (opens new window)

    实验性质的工具,优点是简单易用,信息精简

    1. 局部偏移 Cumulative Layout Shift (CLS)
      • 定量计算出用户遇到意料之外的布局偏移的频率
    2. 网络
    3. Renderer(mmain)
    4. Compositor(Main)

    # Lighthouse

    掘金-看懂 Lighthouse 中 Performance 核心指标 (opens new window) 官方文档-Lighthouse (opens new window)

    模式:

    • 导航
    • 时间跨度
    • 快照

    分析

    1. 性能
      • First Contentful Paint
      • Largest Contentful Paint
      • Total Blocking Time
      • Cumulative Layout Shift
      • Speed Index
    2. 无障碍
    3. 最佳做法
      • https
      • CSP 内容安全政策
    4. PWA 渐进式Web应用

    Lighthouse诊断信息

    • 缩短 JavaScript 执行时间 (opens new window)
    • 最大限度地减少主线程工作 (opens new window)

    # 内存检查器

    # 性能监视器