编程进阶网 编程进阶网
首页
  • 在线工具
  • JSON工具
  • 文本工具
  • 图片处理
  • 文档转化
  • 代码压缩
  • 加解密
  • 时间日期
  • 网络工具
  • 颜色设计
  • 二维码
  • 开发实用
  • 计算机原理
  • 操作系统
  • 网络协议
  • 数据库原理
  • 面向对象
  • 设计原则
  • 设计模式
  • 系统架构
  • 性能优化
  • 编程原理
  • 方案设计
  • 稳定可靠
  • 工程运维
  • 基础认知
  • 线性结构
  • 树与哈希
  • 工业级实现
  • 算法思想
  • 实战与综合
  • 算法题考核
  • C语言入门
  • C综合案例
  • C专栏博客
  • C标准集库
  • C++入门教程
  • C++综合案例
  • C++专栏博客
  • C++编程技巧
  • Java入门教程
  • Java综合案例
  • Java专栏博客
  • Go入门教程
  • Go综合案例
  • Go专栏博客
  • Go开发技巧
  • JavaScript入门
  • JavaScript高级
  • Android库解读
  • Android专栏
  • iOS ObjC入门
  • iOS Swift入门
  • iOS入门精通
  • Web之Html手册
  • Web之TypeScript
  • Web之Vue高级进阶
  • Linux之QML入门
  • Linux之QT核心库
  • Python教程
  • Shell&Bash教程
  • 工具脚本
  • 自动化脚本
  • 质量保障
  • 产品思考
  • 软实力
  • 开发流程
  • Git应用
  • 技术模版
  • 技术规范
  • Markdown
  • Mermaid
  • 开源协议
  • 关于我
  • 自我精进
  • 职场管理
  • 职场面试
  • 心情杂货
  • 友情链接

杨充

专注编程 · 终身学习者
首页
  • 在线工具
  • JSON工具
  • 文本工具
  • 图片处理
  • 文档转化
  • 代码压缩
  • 加解密
  • 时间日期
  • 网络工具
  • 颜色设计
  • 二维码
  • 开发实用
  • 计算机原理
  • 操作系统
  • 网络协议
  • 数据库原理
  • 面向对象
  • 设计原则
  • 设计模式
  • 系统架构
  • 性能优化
  • 编程原理
  • 方案设计
  • 稳定可靠
  • 工程运维
  • 基础认知
  • 线性结构
  • 树与哈希
  • 工业级实现
  • 算法思想
  • 实战与综合
  • 算法题考核
  • C语言入门
  • C综合案例
  • C专栏博客
  • C标准集库
  • C++入门教程
  • C++综合案例
  • C++专栏博客
  • C++编程技巧
  • Java入门教程
  • Java综合案例
  • Java专栏博客
  • Go入门教程
  • Go综合案例
  • Go专栏博客
  • Go开发技巧
  • JavaScript入门
  • JavaScript高级
  • Android库解读
  • Android专栏
  • iOS ObjC入门
  • iOS Swift入门
  • iOS入门精通
  • Web之Html手册
  • Web之TypeScript
  • Web之Vue高级进阶
  • Linux之QML入门
  • Linux之QT核心库
  • Python教程
  • Shell&Bash教程
  • 工具脚本
  • 自动化脚本
  • 质量保障
  • 产品思考
  • 软实力
  • 开发流程
  • Git应用
  • 技术模版
  • 技术规范
  • Markdown
  • Mermaid
  • 开源协议
  • 关于我
  • 自我精进
  • 职场管理
  • 职场面试
  • 心情杂货
  • 友情链接
  • README
  • 性能优化实践

    • README
    • 公共方法论

      • 性能工程总论原理
      • 跨平台指标体系
      • 性能求证方法论
      • 数据采集与观测
      • 归因方法与火焰图
      • 性能预算防劣化
      • 性能体系全景图
        • 性能优化误区集
      • 体系建设篇

      • 资源专项篇

      • 流水线专项

      • 业务专项篇

      • 交付防御篇

    • 程序编程原理

    • 稳定性与可靠性

    • 工程化与运维

    • 方案设计思想

    • 专栏
    • 性能优化实践
    • 公共方法论
    杨充
    2026-05-27
    目录

    性能体系全景图

    # 性能体系全景图

    📊 学习成本预估 | 难度:⭐⭐⭐(3/5)| 阅读:约 15 分钟 | 实操:无(仅阅读) 🔗 前置阅读:卷零·01 | ➡️ 后续延伸:全栏导览

    本文用一张大图整合整个性能工程的"全宇宙"——从硬件到用户体感,从端侧到后端,从指标到 SLO。 它是 卷零·01 总论原理 (opens new window) 的「地图视图」——总论讲"是什么",本文讲"在哪里"。

    # 目录介绍

    • 00.开篇
    • 01.分层模型
    • 02.全链路视图
    • 03.三视角矩阵
    • 04.成熟度模型
    • 05.全景速查
    • 06.总结

    # 00 开篇

    # 0.1 为什么需要全景图

    性能工程涉及"硬件 → 内核 → 运行时 → 应用 → 用户"五层,"端 → 网关 → 后端"三段,"监控 → 优化 → 防御"三阶段——共 5 × 3 × 3 = 45 个交叉点。没有全景图,工程师容易陷入"我做的对吗""有没有遗漏"的焦虑。

    本文的目的:让任何性能问题都能被坐标定位,让任何优化都能被范围圈定。

    # 0.2 怎么读这张图

    • 新人:从 §01 分层模型入手,建立"硬件到体感"的纵向认知
    • 架构师:从 §02 全链路 + §04 成熟度模型,规划体系演进路线
    • 救火队员:从 §05 全景速查,按现象快速定位

    # 01 分层模型

    性能问题分布在 4 个抽象层级,每层有自己的原语、工具、指标:

    ┌──────────────────────────────────────────────────────────┐
    │  L4 体感层:用户主观感知                                 │
    │  · 流畅 / 快慢 / 卡 / 耗电                              │
    │  · 指标:APDEX / NPS / 主观打分                         │
    │  · 工具:用户调研 / 高速摄像 / 真机回放                 │
    └──────────────────────────────────────────────────────────┘
               ↑ 用户感知映射
    ┌──────────────────────────────────────────────────────────┐
    │  L3 应用层:业务功能与场景                               │
    │  · 启动 / 列表 / 网络 / 图片 / 动画                     │
    │  · 指标:业务级 SLO(启动 P95、列表 FPS)              │
    │  · 工具:APM / 业务埋点 / RUM                           │
    └──────────────────────────────────────────────────────────┘
               ↑ 业务依赖
    ┌──────────────────────────────────────────────────────────┐
    │  L2 运行时层:渲染管线 / 调度 / GC                       │
    │  · 帧产出 / 任务队列 / 内存管理                         │
    │  · 指标:FPS P99 / 任务时延 / GC 停顿                   │
    │  · 工具:Choreographer / Instruments / Perfetto         │
    └──────────────────────────────────────────────────────────┘
               ↑ 运行时依赖
    ┌──────────────────────────────────────────────────────────┐
    │  L1 系统层:CPU / 内存 / IO / 网络                       │
    │  · 资源 USE:使用率 / 饱和度 / 错误率                   │
    │  · 指标:CPU% / RSS / iops / RTT                        │
    │  · 工具:top / vmstat / iostat / strace                 │
    └──────────────────────────────────────────────────────────┘
    

    重要原则:

    • L4 是结果,L1 是源头:用户感知到的"卡",最终一定能在 L1/L2 找到物理证据
    • 优化必须自底向上:L1 不稳,再优化 L4 都是空中楼阁
    • 监控必须自顶向下:先看 L4 SLO 是否达标,达标了不必关注下层细节

    # 02 全链路视图

    移动场景的性能链路远不止"端",而是"端 → 网络 → 后端"三段:

    ┌────────────────────────────────────────────────────────────────────────────┐
    │                          全链路性能视图                                     │
    └────────────────────────────────────────────────────────────────────────────┘
    
    [用户操作]                                                            [用户感知]
        │                                                                     ↑
        ▼                                                                     │
    ┌────────────────┐    ┌─────────────────┐    ┌─────────────────┐    ┌──────────┐
    │   端侧应用     │    │   网络传输      │    │   服务端处理    │    │  端渲染  │
    │ (Android/iOS/  │ →→ │ (DNS/TCP/TLS/   │ →→ │ (网关/业务/     │ →→ │  显示    │
    │  Web/嵌入式)   │    │  HTTP/CDN)      │    │  存储)          │    │          │
    └────────────────┘    └─────────────────┘    └─────────────────┘    └──────────┘
        │                       │                       │                    │
        ▼                       ▼                       ▼                    ▼
     启动 / 列表 /          DNS 解析 ms             网关耗时 ms          帧合成 ms
     内存 / 解码 /          TCP 握手 ms             业务处理 ms          GPU 渲染 ms
     渲染 / 动画            TLS 协商 ms             DB 查询 ms           显示延迟 ms
                            首字节 ms               缓存命中率
                            下载 ms
        ↓                                                                    ↑
    ┌────────────────────────────────────────────────────────────────────────────┐
    │                        端到端 traceId 串联                                  │
    │   端侧 RUM ←→ 网关 access log ←→ 服务端 trace ←→ 端侧渲染指标               │
    └────────────────────────────────────────────────────────────────────────────┘
    

    关键认知:

    • 责任划分清晰:用户感知慢,必须能定位到「端 / 网络 / 服务端」哪一段
    • 三方对账必要:端、网关、服务端三处独立观测同一指标,差异 > 5% 必须排查链路
    • trace 串联是基础设施:没有 traceId 串联,就没有端到端归因

    详见 卷一·01 APM (opens new window) + 卷一·03 数据治理 (opens new window)。


    # 03 三视角矩阵

    性能问题可以从三种视角看,每种视角有专属的指标语言:

                    ┌─────────────────────────────────────────┐
                    │           三视角矩阵                     │
                    └─────────────────────────────────────────┘
    
                    ┌──────────┐    ┌──────────┐    ┌──────────┐
                    │   USE    │    │   RED    │    │  APDEX   │
                    │ (资源)   │    │ (请求)   │    │ (体感)   │
                    └────┬─────┘    └────┬─────┘    └────┬─────┘
                         │               │               │
                         ▼               ▼               ▼
                    Utilization        Rate           Satisfied
                    Saturation         Errors         Tolerable
                    Errors             Duration       Frustrated
                         │               │               │
                         ▼               ▼               ▼
                    适用:             适用:           适用:
                    CPU/MEM/IO         API/QPS         用户主观
                    资源类             业务请求         体验类
    
    视角 关注 主指标 适用卷
    USE 资源是否健康 利用率 / 饱和度 / 错误率 卷二 资源篇
    RED 请求是否健康 QPS / 错误率 / 延迟分布 卷四 业务篇(网络部分)
    APDEX 用户是否满意 satisfied/total 卷三 流水线 + 卷四 启动列表

    联合使用:

    • USE 高 + RED 高 → 资源紧张导致请求慢
    • USE 低 + RED 高 → 等待型瓶颈(锁、IO、外部依赖)
    • USE 低 + RED 低 + APDEX 低 → 测量错误或心理预期不匹配

    详见 卷零·02 指标体系 (opens new window)。


    # 04 成熟度模型

    性能体系的成熟度可以分 5 级(CMM-like),每个团队都能定位自己当前所处阶段:

    ┌─────────────────────────────────────────────────────────────────────┐
    │   L1 混沌      L2 觉察      L3 体系      L4 量化      L5 自愈       │
    │   (无监控)     (单点监控)   (全链路)     (SLO/预算)   (自动修复)    │
    ├─────────────────────────────────────────────────────────────────────┤
    │   ❌ 看不见   ⚠️ 看见个别  ✅ 看见全局  ✅ 守住底线  🚀 自治闭环   │
    └─────────────────────────────────────────────────────────────────────┘
    

    # 4.1 L1 混沌(无监控)

    • 特征:完全靠用户反馈发现问题
    • 典型痛点:"上线了才知道崩了"
    • 关键动作:先接 Crashlytics / Bugly / Sentry,最低成本启动

    # 4.2 L2 觉察(单点监控)

    • 特征:有崩溃监控、有部分性能埋点,但分散且口径不一
    • 典型痛点:数据看着像没问题,但用户还是吐槽
    • 关键动作:建立卷一·01 APM,统一采集

    # 4.3 L3 体系(全链路)

    • 特征:端 + 网络 + 后端 trace 串联,三方对账
    • 典型痛点:能看见问题但治理跟不上,性能债越积越多
    • 关键动作:建立卷一·03 数据治理 + 卷零·06 性能预算

    # 4.4 L4 量化(SLO + 预算)

    • 特征:每个核心场景都有 SLO;CI 卡口阻断劣化合入;季度复盘有数据
    • 典型痛点:SLO 达标但用户体验仍有提升空间
    • 关键动作:深入卷二/三/四专项优化,做反直觉实验

    # 4.5 L5 自愈(自动修复)

    • 特征:异常自动检测 + 自动归因 + 自动降级;AI 辅助根因定位
    • 典型痛点:维护体系本身的复杂度
    • 关键动作:投资 AIOps、动态降级策略、混沌工程

    # 4.6 你的团队在哪一级?

    自检题 是 → +1
    你能看到线上崩溃率 P95 吗? L2
    你能区分崩溃来自 OOM 还是 ANR 还是 native 吗? L3
    你的 APM 覆盖率 ≥ 90% 吗? L3
    你有正式的性能 SLO 文档吗? L4
    CI 能阻断性能劣化的合入吗? L4
    异常告警能自动归因吗? L5
    异常发生时能自动降级吗? L5

    # 05 全景速查

    # 5.1 一图统揽:30 篇文章在全景中的位置

    ┌────────────────────────────────────────────────────────────────────────┐
    │                         性能工程全景                                    │
    ├────────────────────────────────────────────────────────────────────────┤
    │                                                                        │
    │   ┌────────────── 卷零 方法论(宪法) ──────────────┐                 │
    │   │ 01 总论 / 02 指标 / 03 求证 /                    │                 │
    │   │ 04 采集 / 05 归因 / 06 防劣化 /                  │                 │
    │   │ 07 全景图 / 08 误区集                            │                 │
    │   └──────────────────────┬───────────────────────────┘                 │
    │                          │ 引用                                        │
    │   ┌──────────────────────▼───────────────────────────┐                 │
    │   │           卷一 体系建设篇(地基)                  │                 │
    │   │   01 APM / 02 稳定性 / 03 数据治理               │                 │
    │   └──────────────────────┬───────────────────────────┘                 │
    │         ┌────────────────┼────────────────┐                            │
    │         ▼                ▼                ▼                            │
    │  ┌────────────┐   ┌────────────┐   ┌────────────┐                     │
    │  │ 卷二 资源  │   │ 卷三 流水线│   │ 卷四 业务  │                     │
    │  │ L1 系统    │   │ L2 运行时  │   │ L3 应用    │                     │
    │  │ (USE)      │   │ (帧时序)   │   │ (RED+APDEX)│                     │
    │  ├────────────┤   ├────────────┤   ├────────────┤                     │
    │  │ CPU/MEM/   │   │ 渲染/FPS/  │   │ 启动/网络/ │                     │
    │  │ OOM/线程/  │   │ 卡顿/ANR/  │   │ 图片/列表/ │                     │
    │  │ 进程/IO    │   │ UI/动画    │   │ 功耗       │                     │
    │  └─────┬──────┘   └─────┬──────┘   └─────┬──────┘                     │
    │        └─────────────────┼─────────────────┘                          │
    │                          ▼                                            │
    │   ┌──────────────────────────────────────────────────┐                 │
    │   │           卷五 交付防御篇(边界)                  │                 │
    │   │   01 崩溃 / 02 包体 / 03 安全 / 04 弱网         │                 │
    │   └──────────────────────────────────────────────────┘                 │
    │                                                                        │
    └────────────────────────────────────────────────────────────────────────┘
    

    # 5.2 「我应该看哪一篇」三秒决策表

    问题特征 直接打开
    想建立通用认知 卷零·01 总论 (opens new window)
    想统一指标语言 卷零·02 指标体系 (opens new window)
    不会做实验 卷零·03 求证方法论 (opens new window)
    数据看不懂 卷零·05 归因火焰图 (opens new window)
    优化老反弹 卷零·06 防劣化 (opens new window)
    怀疑自己经验对不对 卷零·08 误区集 (opens new window)

    # 06 总结

    # 6.1 一句话总结

    性能工程不是单点优化,而是一张坐标网格——L1-L4 分层 × 端-网-后端 链路 × USE-RED-APDEX 视角 × L1-L5 成熟度。任何性能问题都能在这张网格里被定位、被治理、被防御。

    # 6.2 三个心智模型

    • 分层模型:自底向上优化、自顶向下监控
    • 链路模型:端 + 网络 + 后端三方对账
    • 视角模型:资源(USE)/ 请求(RED)/ 体感(APDEX)联合诊断

    # 6.3 给团队的「全景使用指南」

    1. 第 1 月:用本文 §04 自评成熟度,找出当前所处级别
    2. 第 1 季度:补齐当前级别的所有短板,向下一级跃迁
    3. 每年:重新审视全景,因为业务在变、用户在变、技术也在变

    性能体系不是一蹴而就的工程,而是一个持续演进的"地图"——本文就是那张地图。

    上次更新: 2026/06/26, 19:34:59
    性能预算防劣化
    性能优化误区集

    ← 性能预算防劣化 性能优化误区集→

    最近更新
    01
    CSS选择器入门
    06-23
    02
    CSS盒模型详解
    06-23
    03
    CSS定位与层级
    06-23
    更多文章>
    Theme by Vdoing | Copyright © 2019-2026 杨充 | MIT License | 鄂ICP备2024073355号-1 | 鄂ICP备2024073355号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式