我需要使用网络工作者进行要求很高的计算。我有const t0 = performance.now()
和const t1 = performance.now()
分别在我的代码的开头和结尾。我想报告t1 - t0
执行计算所需的时间。但是如果 web worker 实际运行在另一个线程中,是否意味着它可以被某个调度程序中断?如果是,那么这意味着它t1 - t0
可能大于实际计算时间(例如:时间线)...您将如何在 javascript 中测量多线程上下文中的执行时间?提前感谢任何愿意帮助我理解的人。
问问题
126 次
1 回答
0
DOMHighResTimeStamp API 使用全局单调时钟,永远不应该暂停甚至限制。
在某些情况下(例如,当标签是背景时),用户代理可以选择在该上下文中进行节奏计时器和定期回调,甚至完全冻结它们。任何此类节流都不应影响单调时钟返回的时间的分辨率或准确性。
performance.now()
因此,只要浏览器本身仍在运行,您就可以确信它会返回自创建 Worker 以来的正确时间。事实上,例如,如果计算机设置为睡眠状态,那么时钟将不再滴答作响。
于 2020-04-19T14:43:25.783 回答