跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.flashcat.cloud/llms.txt

Use this file to discover all available pages before exploring further.

Flashduty 微信小程序 RUM 分析看板提供开箱即用的可视化仪表板,自动采集并分析小程序的用户会话、启动耗时、页面渲染、setData 调用等多维度数据,帮助您全面洞察小程序真实运行状况,快速定位性能瓶颈与异常问题,持续优化用户体验。
分析看板包含 2 个核心分析维度:概览性能分析

概览 — 关键指标一目了然

概览模块聚焦于小程序多维度的核心指标,帮助您快速把握整体健康状况。

流量与会话

  • UV:去重后的独立访客数。结合趋势图可洞察用户活跃规律。
  • 会话数:小程序被打开使用的会话总数,点击卡片可下钻查看具体会话列表。
  • 用户访问趋势:以时序图同时展示 UV 与 Session 的变化趋势,识别访问高峰与异常波动。

核心指标

  • 错误数(error_count):监控小程序错误事件的总数与时序趋势,及时发现异常峰值。
  • 会话错误率(session error rate):发生错误的会话占总会话的比例,反映小程序整体稳定性。
  • 应用启动时长 P75(appLaunchTime P75):监控小程序冷启动 + 热启动整体耗时的 P75 分位值,评估启动性能表现。启动时长直接影响用户的第一印象。
  • 首次渲染 P75(firstRender P75):监控页面从开始加载到首次渲染完成耗时的 P75 分位值,反映页面”白屏”时间。
  • setData 调用次数(setDataCount 平均值):监控页面平均每次访问的 setData 调用次数。过高的调用频次会增加 JS 与渲染线程的通信开销。
  • setData 耗时 P75(setDataDuration P75):监控单次 setData 调用耗时的 P75 分位值。

会话分析

  • 平均会话时长:会话总时长除以会话总数,评估用户粘性与使用深度。结合时序图可识别活跃用户行为变化。

性能分析 — 全面掌控小程序体验

性能分析模块专注于小程序启动、页面渲染、setData 等核心体验指标的全链路监控。

核心性能指标

顶部展示 5 个关键性能指标卡片,点击任一卡片可切换下方趋势图与样本分布的统计维度:
指标采集字段说明
应用启动时长 P75app_launch小程序启动耗时的 P75 分位值
首次渲染 P75first_render页面首次渲染完成耗时的 P75 分位值
页面加载时长 P75loading_time页面从打开到完全加载完成耗时的 P75 分位值
setData 调用次数(平均值)setdata_count单次页面访问内 setData 调用次数的平均值
setData 耗时 P75setdata_duration单次 setData 调用耗时的 P75 分位值
每个卡片左上角显示健康状态徽标(良好 / 中等 / 差),基于内置阈值评估当前指标。

趋势分析

下方的趋势图支持选择 趋势模式,按不同维度展开当前指标:
趋势模式说明
整体不分维度,展示当前指标的整体时序趋势
按版本按应用版本号(version)分组,对比新旧版本性能差异
按环境按环境变量(env)分组,对比不同环境的性能表现
按加载类型view_loading_type 分组,对比冷启动与热启动性能
按操作系统os_name 分组,识别系统级兼容性差异
切换 按版本 时可对比新版本灰度阶段的性能数据,验证发版质量;切换 按加载类型 时可单独观察冷启动(initial_load)和热启动(route_change)的耗时差异。

样本分布

样本分布柱状图按时间区间统计当前指标的样本数量分布,识别长尾问题。例如观察应用启动时长时,分布图能清晰展示有多少用户的启动耗时落在 1s 以内、1-2s、2s 以上等区间。

页面性能明细

按页面(视图名称)统计各项性能指标,识别加载缓慢或 setData 过于频繁的页面:
说明
视图名称小程序页面路由路径
访问次数该页面的 view 事件总数,附直方图条形展示相对热度
应用启动时长落在该页面会话内的启动耗时 P75
首次渲染该页面首次渲染耗时 P75
页面加载时长该页面完全加载耗时 P75
setData 调用次数该页面平均 setData 调用次数
setData 耗时该页面单次 setData 耗时 P75
onLoad → onShow该页面从 onLoadonShow 之间的耗时 P75
onShow → onReady该页面从 onShowonReady 之间的耗时 P75
点击表格中的任一行可跳转到该页面的详细分析视图。

启动类型趋势

底部两张图分别展示冷启动(initial_load)与热启动(route_change)的对比情况:
  • 启动类型趋势:冷启动与热启动次数随时间的变化趋势,识别业务流量结构变化。
  • 启动耗时趋势:冷启动与热启动耗时的时序对比,冷启动通常显著长于热启动;如果两者差距异常缩小或拉大,往往意味着启动逻辑发生了变化。
冷启动 vs 热启动
  • 冷启动(initial_load):用户首次进入小程序或小程序被微信回收后重新打开,需要完整初始化运行时和加载首页。
  • 热启动(route_change):小程序在后台短时间被唤回,无需重新初始化,耗时显著更短。

常见问题

  • 应用启动时长(app_launch):从用户点击小程序图标或入口到 App.onLaunch 执行完成的总耗时,包含运行时初始化、首页代码包加载、App.onLaunch 执行等阶段。
  • 首次渲染(first_render):从页面开始加载到该页面首次完成渲染的耗时,反映页面”白屏”时间。
  • 一次冷启动通常 = 应用启动时长 + 首页首次渲染时间,二者从不同角度衡量启动体验。
setData 是小程序逻辑层向渲染层通信的核心 API,每次调用都会触发跨线程通信和差量计算。常见问题:
  • 频繁调用:在循环或事件中高频调用 setData,导致渲染线程持续繁忙
  • 数据体积过大:一次 setData 传递的数据过大,跨线程序列化耗时显著
  • 更新无关数据:把整个 data 传给 setData,而不是仅传递变化的字段
优化建议:
  • 合并多次 setData 调用,使用局部对象传参
  • 使用路径表达式更新嵌套字段,如 this.setData({ 'list[0].name': value })
  • 避免在频繁触发的事件(scroll、input)中直接调用 setData,使用节流/防抖
  • 关注页面明细表中 setData 调用次数setData 耗时 列异常高的页面,优先优化
分位数(Percentile)是统计学中衡量数据分布的重要指标:
分位数含义
P50(中位数)50% 的用户体验优于此值,50% 的用户体验劣于此值
P7575% 的用户体验优于此值,25% 的用户体验劣于此值
P9090% 的用户体验优于此值,10% 的用户体验劣于此值
为什么使用 P75 而不是平均值?
  • 平均值容易被极端值影响,可能不能代表大多数用户的真实体验
  • P75 更能反映大部分用户的体验情况,是业界常用的性能评估标准
1

分析启动数据

关注 应用启动时长 P75 指标,并通过样本分布柱状图识别长尾。切换趋势模式为 按加载类型 单独观察冷启动表现。
2

精简代码包

减少首包体积,使用分包加载(subpackages)和分包预下载,避免一次性加载所有页面代码。
3

延迟非关键初始化

把第三方 SDK 初始化、埋点上报、远程配置拉取等非关键任务延迟到首屏渲染之后执行。
4

优化首页渲染

  • 减少首屏依赖的网络请求数量,合并接口
  • 使用本地缓存或骨架屏,避免长时间白屏
  • 控制首屏 setData 的数据体积
5

关注版本变化

切换趋势模式为 按版本,对比新旧版本启动耗时,及时发现回退。
这些是小程序页面生命周期内部各阶段的耗时,可用于精确定位渲染慢的环节:
  • onLoad → onShow:页面收到 onLoadonShow 之间的耗时,主要反映 onLoad 中同步逻辑(参数解析、首屏数据预处理等)的耗时。
  • onShow → onReady:页面 onShowonReady 之间的耗时,反映首次渲染完成所需的时间,包含模板编译和首批 setData 的渲染。
如果首次渲染时间偏长,可结合这两个分段指标判断是 onLoad 中的逻辑阻塞,还是首次渲染本身耗时过长。
Flashduty RUM 通常在数据产生后的 1-3 分钟内完成采集和展示。在网络状况良好的情况下,大部分数据可实现准实时更新。

延伸阅读

微信小程序 SDK 接入指南

了解如何在微信小程序中接入 RUM SDK,完成应用初始化

微信小程序数据收集

了解 SDK 自动采集的事件类型与 view 字段口径

微信小程序高级配置

深入配置代理、分布式追踪、采样率与手动上报

微信小程序兼容性

查看 SDK 支持的小程序基础库版本与平台 API 要求