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

    • README
    • 公共方法论

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

      • 资源专项篇

      • 流水线专项

      • 业务专项篇

      • 交付防御篇

    • 程序编程原理

    • 稳定性与可靠性

    • 工程化与运维

    • 方案设计思想

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

    性能体系全景图

    # 性能体系全景图

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

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

    # 目录介绍

    • 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                 │
    └──────────────────────────────────────────────────────────┘
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27

    重要原则:

    • 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 ←→ 端侧渲染指标               │
    └────────────────────────────────────────────────────────────────────────────┘
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24

    关键认知:

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

    详见 卷一·01 APM + 卷一·03 数据治理。


    # 03 三视角矩阵

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

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

    联合使用:

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

    详见 卷零·02 指标体系。


    # 04 成熟度模型

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

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

    # 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 弱网         │                 │
    │   └──────────────────────────────────────────────────┘                 │
    │                                                                        │
    └────────────────────────────────────────────────────────────────────────┘
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33

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

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

    # 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/07, 10:26:12
    性能预算防劣化
    性能优化误区集

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

    最近更新
    01
    信号崩溃快速排查
    06-15
    02
    CoreDump破案
    06-15
    03
    perf火焰图实战
    06-15
    更多文章>
    Theme by Vdoing | Copyright © 2019-2026 杨充 | MIT License | 桂ICP备2024034950号 | 桂公网安备45142202000030
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式