加入收藏 | 设为首页 | 会员中心 | 我要投稿 鞍山站长网 (https://www.0412zz.cn/)- 智能营销、数据计算、数据可视化、负载均衡、研发安全!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

企业如何准备好面对僵尸网络威胁

发布时间:2021-02-19 10:59:41 所属栏目:外闻 来源:互联网
导读:标记 的 performance entry将具有以下属性值: entryType - 设置为 mark. name - 设置为mark被创建时给出的 name startTime - 设置为 mark() 方法被调用时的 timestamp 。 duration - 设置为 0 (标记没有持续时间). Performance.measure 同样先来看看 MDN 上

标记 的 performance entry将具有以下属性值:

  • entryType - 设置为 "mark".
  • name - 设置为mark被创建时给出的 "name"
  • startTime - 设置为 mark() 方法被调用时的 timestamp 。
  • duration - 设置为 "0" (标记没有持续时间).

Performance.measure

同样先来看看 MDN 上关于 measure 的定义:

这段定义和上面 mark 的定义有些类似,其最核心的不同点在于这句话 between two specified marks。所以measure是指定两个mark点之间的时间戳。如果说mark可以理解为**"打点"的话,measure就可以理解为"连线"**。


 

在这里,我们可以看到 Firefox 中的结果与 Chrome 完全不同。这是因为从版本60开始,Firefox 将performance API的精度降低到2ms。

performance API 不当当只有返回时间戳这个功能,还有很多实用方法,大家可以根据需要到 MDN 查询相关的文档。

然而,对于我们的用例,我们只想计算单个函数的性能,因此时间戳就足够了。

performance.now() 和 Date.now一样吗?

你可能会想,嘿,我也可以使用Date.now来做?

是的,你可以,但这有缺点。

Date.now返回自Unix纪元(1970-01-01T00:00:00Z)以来经过的时间(以毫秒为单位),并取决于系统时钟。这不仅意味着它不够精确,而且还不总是递增。WebKit工程师(Tony Gentilcore)的解释如下:

基于系统时间的日期可能不太会被采用,对于实际的用户监视也不是理想的选择。大多数系统运行一个守护程序,该守护程序定期同步时间。通常每15至20分钟将时钟调整几毫秒。以该速率,大约10秒间隔的1%将是不准确的。

Performance.mark 和 Performance.measure

除了Performance.now函数外,还有一些函数可以让我们度量代码不同部分的时间,并将它们作为性能测试工具(如Webpagetest)中的自定义度量。

Performance.mark

先来看看MDN中关于mark方法的定义:

  • The mark() method creates a timestamp in the browser's performance entry buffer with the given name.

这段话可以分解出三个关键词。首先timestamp,这里的timestamp指的是高精度时间戳(千分之一毫秒),其次是performance entry buffer。

performance entry buffer指的是存储performance实例对象的区域,初始值为空。

最后就是given name,表示生成的每一个timestamp都有相应的名称。

所以这句话就可以理解成,在浏览器的performance entry buffer中,根据名称生成高精度时间戳。也就是很多人说过的**“打点”**。

就像Performance.now一样,此函数的精度分数高达5µs。



(编辑:鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读