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/zh-tw/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

發表回復

登錄後才能評論