时间戳与调度指南
耗时测量:单调时钟与墙上时钟
进程内耗时使用单调时钟,跨系统事件记录使用墙上时间戳。
分开时钟用途
Date.now 读取民用时间,可能因同步或用户调整而改变,两次相减可能得到错误耗时。
单调时钟设计上独立于这些墙上时间调整并向前推进。
const start = performance.now();
// await the operation
const elapsedMs = performance.now() - start;不能比较无关的单调读数
单调读数相对于时间原点,不同进程或浏览器上下文未必共享原点。
交换事件应记录明确 UTC 时间戳及必要的时钟误差,不能把 performance.now 当 Unix 时间发送。
检查运行环境细节
高精度计时器可能因隐私降低精度,休眠行为也有平台差异,单调不等于无限精确。
耗时跨设备休眠时,应查环境时钟文档并测试恢复行为。
日期工具用于已记录时间戳
日期差值比较提供的民用时间,无法还原进程测量期间时钟是否跳变。
同时需要延迟分析和审计时,应独立保存测得耗时与开始结束墙上时间戳。