免责声明:由于运行库中的性能问题,以下代码段可以在大多数浏览器中缓慢运行和/或锁定。然而,这说明了一个我似乎无法解决的奇怪问题。
问:为什么在下面的片段中,console.time和window.performance.measure在时间上有如此显著的差异?
澄清: console.time正在报告毫秒级的计时,window.performance.measure提供了大约40度的精确时间。

import { unified } from "unified";
import remarkParse from "remark-parse";
import remarkRehype from "remark-rehype";
import rehypeStringify from "rehype-stringify";
const sourceMarkdown = `
1${" ".repeat(75000)}2
`;
document.getElementById("source").innerHTML = sourceMarkdown;
try {
console.time("unified-pipeline");
window.performance.mark("unified-pipeline");
unified()
.use(remarkParse)
.use(remarkRehype)
.use(rehypeStringify)
.process(sourceMarkdown)
.then((file) => {
document.getElementById(
"result"
).contentWindow.document.body.innerHTML = String(file);
console.timeEnd("unified-pipeline");
console.log(window.performance.measure("unified-pipeline"));
});
} catch (err) {
document.getElementById("error").innerHTML = err;
}发布于 2022-06-22 19:13:22
这是因为您滥用了performance.measure,因此度量了不同的东西。
你只提供measureName
如果只指定measureName,则开始时间戳设置为零,结束时间戳(用于计算持续时间)是Performance.now()将返回的值。
...thereby测量的是从时间原点开始的时间,而不是从开始标记开始的时间。
第一个参数应该是measureName (一个新的无关字符串),第二个参数应该是startMark的名称。
window.performance.measure("anything here", "unified-pipeline")https://stackoverflow.com/questions/72720634
复制相似问题