JavaScript性能监控的核心是“可观测、可归因、可优化”,关键指标分三类:用户体验类(LCP≤2.5s、FID≤100ms、CLS≤0.1)、运行时行为类(长任务、函数级耗时、内存趋势)和资源加载类(JS执行时间、TTFB、FCP/FMP/TTI),通过PerformanceObserver、User Timing和Navigation/Resource Timing等原生API采集,以sendBeacon上报并结合多维分析与告警闭环驱动优化。
JavaScript性能监控的核心是“可观测、可归因、可优化”。它不是堆砌数据,而是围绕用户真实体验和代码运行瓶颈,采集有业务意义的关键指标,并建立从采集到行动的闭环。
这些指标分三类:用户体验类、运行时行为类、资源加载类,每类都对应明确的业务影响。
标):performance.memory(Chrome)观察 JS 堆使用量增长是否持续上升,辅助判断内存泄漏。performance.getEntriesByType('resource') 筛选关键 JS,取 responseEnd - fetchStart;navigation.timing.responseStart - navigation.timing.requestStart;现代浏览器提供了轻量、标准、无侵入的原生 API,无需依赖大型 SDK 即可启动监控。
'largest-contentful-paint'、'first-input'、'layout-shift' 获取 Web Vitals;'longtask' 捕获阻塞任务;buffered: true 可捕获页面加载前已发生的指标。performance.mark('search-start') 和 performance.mark('search-end');performance.measure('search-duration', 'search-start', 'search-end') 计算耗时,支持跨模块协作分析。performance.getEntriesByType('navigation') 查首屏各阶段耗时(DNS、TCP、SSL、TTFB);performance.getEntriesByType('resource') 定位慢 JS/CSS/图片,尤其适合排查第三方脚本拖慢问题。采集只是起点,真正起效的是把数据变成可行动的结论。
navigator.sendBeacon(),避免因页面卸载导致数据丢失;对低频高价值指标(如 LCP 超标、长任务 >500ms)可全量上报,高频指标(如每帧 FPS)做采样或聚合后上报。不复杂但容易忽略:指标本身没有意义,只有和用户行为(如点击后 3 秒内未出结果)、业务目标(如支付页 LCP 每增加 100ms,转化率下降 0.8%)挂钩,监控才真正产生价值。