首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >console.time对window.performance.measure

console.time对window.performance.measure
EN

Stack Overflow用户
提问于 2022-06-22 18:51:50
回答 1查看 149关注 0票数 -1

免责声明:由于运行库中的性能问题,以下代码段可以在大多数浏览器中缓慢运行和/或锁定。然而,这说明了一个我似乎无法解决的奇怪问题。

问:为什么在下面的片段中,console.time和window.performance.measure在时间上有如此显著的差异?

澄清: console.time正在报告毫秒级的计时,window.performance.measure提供了大约40度的精确时间。

代码语言:javascript
复制
    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;
    }
EN

回答 1

Stack Overflow用户

发布于 2022-06-22 19:13:22

这是因为您滥用了performance.measure,因此度量了不同的东西。

你只提供measureName

如果只指定measureName,则开始时间戳设置为零,结束时间戳(用于计算持续时间)是Performance.now()将返回的值。

...thereby测量的是从时间原点开始的时间,而不是从开始标记开始的时间。

第一个参数应该是measureName (一个新的无关字符串),第二个参数应该是startMark的名称。

代码语言:javascript
复制
window.performance.measure("anything here", "unified-pipeline")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72720634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档