performance.now——浏览器性能衡量标准

概述

performance.now()是浏览器性能API的一部分,提供一个高精度、低误差的时间测量方式,用以支持算法分析和系统级优化。

一、performance.now单位

1、单位介绍

performance.now()返回当前时刻到navigationStart事件被触发的时间差,依赖于操作系统高精度计时器提供的时间信息,单位为毫秒(ms)。

2、示例代码

function testPerformance() {
  let t1 = performance.now();
  // do some work here
  let t2 = performance.now();
  console.log(`Time elapsed: ${t2 - t1} ms`);
}
testPerformance();

二、performance.now和date.now

1、性能比较差异

date.now()是JavaScript中的一个内置函数,返回当前的时间戳,不依赖操作系统计时器,但其精度较低,可能受到系统时间调整或线程调度等原因的影响。而performance.now()则依赖于操作系统计时器返回的测量结果,精度更高,但在运行过程中受到操作系统影响较大。

2、示例代码

let t1 = Date.now();
// do some work here
let t2 = Date.now();
console.log(`Time elapsed: ${t2 - t1} ms`);

let t3 = performance.now();
// do some work here
let t4 = performance.now();
console.log(`Time elapsed: ${t4 - t3} ms`);

三、performance.now js

1、API说明

performance.now()函数在JavaScript中作为浏览器提供的单一参数,可以与其他性能API结合使用,例如performance.mark()和performance.measure(),可以对性能分析过程进行更加细致的测量和记录。

2、示例代码

performance.mark('startWork');
// do some work here
performance.mark('endWork');
performance.measure('workTime', 'startWork', 'endWork');
console.log(performance.getEntriesByName('workTime')[0].duration);

四、performance.now在Firefox

1、Firefox中的差异

在Firefox中,performance.now()返回的结果是一个浮点数,代表自系统时间启动以来所经过的时间。返回值精确度可以达到微秒级别,比其他现代浏览器更高。

2、示例代码

let t1 = performance.now();
// do some work here
let t2 = performance.now();
console.log('Time elapsed:', (t2 - t1) + 'ms');

五、performance.now和new date

1、new Date()的差异

new Date()是JavaScript中另外一个内置函数,能够精确获取当地时间,返回值会受到时区等诸多因素的影响,具有很强的可读性。

而performance.now()则不关心时区等因素,更适合于浏览器性能优化。

2、示例代码

let t1 = new Date();
// do some work here
let t2 = new Date();
console.log('Time elapsed:', (t2 - t1) + 'ms');

let t3 = performance.now();
// do some work here
let t4 = performance.now();
console.log('Time elapsed:', (t4 - t3) + 'ms');

六、performance.now() 用户识别选取

1、用户识别漏洞

performance.now()函数的返回值可以用于用户行为识别,在较早版本浏览器中存在漏洞,被不法分子利用进行用户行为跟踪等商业行为,因此在实际应用中需要注意这个问题,并严格控制网站使用performance.now()功能的特权信息,避免用户数据泄露。

2、代码示例

function getUserData() {
  let t1 = performance.now();
  // collect user data here
  let t2 = performance.now();

  // send data to server
  sendData(t2 - t1);
}

七、结语

通过本文的介绍,我们了解了performance.now()函数的原理和使用,包括其单位、与date.now()的比较、在JavaScript中的使用、在Firefox中的差异、与new Date()的性能差异、以及用户信息识别问题等。在实际开发中,我们可以利用performance.now()函数对系统进行着重优化,提高Web应用程序的性能。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/150496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-08 14:53
下一篇 2024-11-08 14:53

相关推荐

  • 如何解决web浏览器双击事件时差

    本文将从以下几个方面对web浏览器双击事件时差进行详细阐述,并提供解决方法。 一、双击事件延时设置 1、问题描述:在web浏览器中,双击事件默认会延时一定的时间才能触发该事件,这个…

    编程 2025-04-29
  • 如何优化 Git 性能和重构

    本文将提供一些有用的提示和技巧来优化 Git 性能并重构代码。Git 是一个非常流行的版本控制系统,但是在处理大型代码仓库时可能会有一些性能问题。如果你正在处理这样的问题,本文将会…

    编程 2025-04-29
  • 使用Python模拟手机浏览器的方法

    解答如何使用Python模拟手机浏览器,并且给出示例代码。 一、安装Selenium库 使用Python模拟手机浏览器需要使用Selenium库。 首先,使用pip命令进行安装: …

    编程 2025-04-28
  • 使用@Transactional和分表优化数据交易系统的性能和可靠性

    本文将详细介绍如何使用@Transactional和分表技术来优化数据交易系统的性能和可靠性。 一、@Transactional的作用 @Transactional是Spring框…

    编程 2025-04-28
  • 谷歌浏览器窗口大小调整

    谷歌浏览器是当今最流行的网络浏览器之一,它的窗口大小调整是用户操作其中的一个重要部分。本文将从多个方面对谷歌浏览器窗口大小调整做详细的阐述。 一、窗口大小调整的基础操作 谷歌浏览器…

    编程 2025-04-28
  • 如何在电脑上下载安装谷歌浏览器?

    想要在电脑上使用谷歌浏览器,我们需要先进行下载和安装。下面,本文将从多个方面详细阐述如何在电脑上下载安装谷歌浏览器。 一、到谷歌浏览器官方网站下载 谷歌浏览器官方网站是我们下载谷歌…

    编程 2025-04-28
  • Python性能优化方案

    本文将从多个方面介绍Python性能优化方案,并提供相应的示例代码。 一、使用Cython扩展 Cython是一个Python编译器,可以将Python代码转化为C代码,可显著提高…

    编程 2025-04-28
  • Python AUC:模型性能评估的重要指标

    Python AUC是一种用于评估建立机器学习模型性能的重要指标。通过计算ROC曲线下的面积,AUC可以很好地衡量模型对正负样本的区分能力,从而指导模型的调参和选择。 一、AUC的…

    编程 2025-04-28
  • Python性能分析: 如何快速提升Python应用程序性能

    Python是一个简洁高效的编程语言。在大多数情况下,Python的简洁和生产力为开发人员带来了很大便利。然而,针对应用程序的性能问题一直是Python开发人员需要面对的一个难题。…

    编程 2025-04-27
  • 如何解决Fiddler抓不到谷歌浏览器的包问题

    当使用Fiddler工具抓取网络数据包时,由于谷歌浏览器的加密机制,使得Fiddler无法直接抓取到谷歌浏览器发送的网络数据包。下面将从几个方面阐述如何解决这个问题。 一、关闭谷歌…

    编程 2025-04-27

发表回复

登录后才能评论