JS 自我剖析 API
JS 自定义分析 API 使网站能够运行采样分析器,以了解 JavaScript 执行时间花费在哪里。
概念与用法
要开始分析,网站会创建一个 Profiler
实例。创建实例后,它将开始对 JavaScript 执行上下文进行采样。
要停止收集样本并检索分析结果,网站会调用 Profiler.stop()
。这将返回一个 Promise
,该 Promise 解析为一个包含分析数据的对象。
例如,以下函数创建一个分析器,然后调用函数 genPrimes()
,然后停止分析器并检索分析数据。
js
async function profileGeneratePrimes() {
const profiler = new Profiler({ sampleInterval: 10, maxBufferSize: 10000 });
genPrimes();
const trace = await profiler.stop();
console.log(trace);
}
该分析器是采样分析器:这意味着它会定期记录(或采样)JavaScript 调用堆栈的当前状态。分析结果由这些样本的集合组成。这使您能够从统计上了解程序花费大部分时间的地方。
要确切了解分析结果包含什么以及其格式,请参阅 分析结果的结构和格式。
分析最佳实践
收集和处理分析数据本身就会产生性能开销,开发者应谨慎管理。最小化性能开销的实践包括:
- 使用
maxBufferSize
和sampleInterval
选项来控制要采集的样本数量以及采样频率。 - 以采样方式进行短时间采样:例如,每 60 秒采样 5 秒。
- 在 Web Worker 中处理样本,以避免影响主线程的性能。
- 在将样本发送到遥测端点之前,在客户端聚合样本。
如果您的网站的 JavaScript 被 最小化,您将需要根据 源映射(在客户端或服务器端)转换分析数据,然后才能使用这些数据。
接口
Profiler
实验性-
Profiler
接口用于创建分析结果。
安全要求
要使用此 API,必须使用包含 "js-profiling"
配置点的 文档策略 来提供文档。
规范
规范 |
---|
JS 自我剖析 API |
浏览器兼容性
加载中…