【JS】performance.now()与Date.now()

424 阅读2分钟

performance.now()

概述

performance.now()方法用于获取当前时间的高精度时间戳。它返回一个浮点数,表示从页面加载开始到调用该方法时的时间间隔,单位为毫秒(ms)。

注: performance.now() 返回的时间戳基于浏览器的启动时间,而不是系统的实际时间。因此,它不应该用于依赖于真实时间的计时或日期比较。它主要用于性能分析和测量代码执行时间的目的。

使用

const start = performance.now();//获取一个起始时间戳
//code...
const end = preformancec.now();//获取一个结束时间戳
const time = end - start;
console.log(`执行时间:${time} 毫秒`)

performance.now() 返回的时间戳以毫秒为单位,通常具有微秒级或纳秒级的精确度。它可以用于测量非常小的时间间隔,帮助我们了解代码的性能和优化需求

Date.now()

概述

Date.now()方法也是用于获取当前时间的时间戳。它返回一个表示当前时间的整数值,该值是当前时间与UTC时间1970年1月1日午夜之间的时间间隔,以毫秒为单位, 使用 Date.now() 可以方便地获取当前时间的时间戳,这在许多情况下是有用的,例如计时、日期比较、生成唯一标识符等。

由于 Date.now() 返回的是一个整数值,它不提供高精度的时间信息。如果需要更高精度的时间测量,可以使用 performance.now() 方法。

使用

const time = Fate.now();//获取当前时间的时间戳
console.log(time)

对比

虽然Date.now()performance.now()是两个用于测量时间的 JavaScript 函数,但它们还是有些不同之处的

  • 从作用上来说: Date.now()返回当前时间的毫秒数,基于系统时钟。它在浏览器和服务器环境中都可用,可以用来获取当前时间戳或计算时间间隔。而performance.now()返回一个高精度的时间戳,以毫秒为单位,表示自某个固定点开始的时间间隔。它主要用于性能测量和性能优化,尤其是测量代码执行时间。
  • 从返回的值来说: performance.now()返回的时间戳是一个双精度浮点数,表示自页面加载开始以来的时间,它具有更高的精度和准确性,适用于性能测量。而Date.now()返回的时间戳是一个整数,精度较低。