【JS】performance.now 方法(类似于Date.now)

文章目录

    • 回顾 Date.now()
    • 了解 performance.now()

  • performance.now:是浏览器(Web API)提供的方法,不同浏览器获取到的精度不同。
  • Date.now:是Javascript内置方法,差异主要在于浏览器遵循的ECMAScript规范。

回顾 Date.now()

  • Date.now() :返回自 1970 年 1 月 1 日 00:00:00 (UTC) 到当前时间的毫秒数
  • Date.now() 约等于 performance.timing.navigationStart + performance.now()
let start = Date.now();
// 调用一个耗时间的循环
for (let i = 0; i < 100000; i++) {
  let doSomething = i * i;
}
let end = Date.now()

// 从格兰威特时间到至今(循环开始前)的时间戳
console.log('开始时间:', start);	// 1666781986873
console.log('结束时间:', end);		// 1666781986873
// 以毫秒计的运行时长
console.log('运行时长:',end - start)	// 0 毫秒

了解 performance.now()

  • 注意:performance.now 虽然是基于毫秒精度的时间,但是能精确到微秒级别,其数值的小数部分代表了一个毫秒的小数(也就是微秒)
  • 如果浏览器不能提供精确到微秒的时间值 (例如,由于硬件或软件的限制),那么他们只能精确到毫秒。
  • Date.now():返回的时间戳没有被限制在一毫秒的精确度内,小于 1ms 的测试不出来结果。
  • performance.now():返回的时间戳以双精度浮点数 double 的形式表示时间,精度最高可达微秒级。
let start = performance.now();
// 调用一个耗时间的循环
for (let i = 0; i < 100000; i++) {
  let doSomething = i * i;
}
let end = performance.now()

// 返回的时间戳,是自创建上下文以来经过的时间,跟打开网页的时间有关,但是这不是绝对的。
// 如果返回的值是178764.00000002384185791 这类的,这种的会被处理为 178764
console.log('开始时间:', start);	// 178764
console.log('结束时间:', end);		// 178764.10000002384
// 以毫秒计的运行时长
console.log('运行时长:',end - start)	// 0.10000002384185791 毫秒

扩展:1s =1000ms(毫秒) = 1000000(微秒),即1毫秒 = 1000微秒

你可能感兴趣的:(JavaScript,笔记,javascript,firefox,开发语言)