一、使用 performance.now() API 在 JavaScript 中,可以使用 performance.now() API 來評測代碼的運行速度。該 API 返回當前頁面的高精度時間戳,您可以在代碼執行前後調用它來計算代碼執行所需的時間。 例如: let t0 = performanc ...
一、使用 performance.now()
API
在 JavaScript 中,可以使用 performance.now()
API 來評測代碼的運行速度。該 API 返回當前頁面的高精度時間戳,您可以在代碼執行前後調用它來計算代碼執行所需的時間。
例如:
let t0 = performance.now();
// 執行需要測試的代碼
for (let i = 0; i < 1000000000; i++) {
// some code
}
let t1 = performance.now();
console.log("Code took " + (t1 - t0) + " milliseconds.");
註意,performance.now()
API 只在現代瀏覽器中可用,並且可能會受到其他因素(例如電腦性能和當前頁面的負載)的影響,因此該結果只能作為相對值。
二、使用 console.time()
和 console.timeEnd()
另一種評測 JavaScript 代碼運行速度的方法是使用 console.time()
和 console.timeEnd()
。這兩個方法允許您給特定代碼塊計時,併在代碼執行後在控制臺中顯示計時結果。
例如:
console.time("Test code");
// 執行需要測試的代碼
for (let i = 0; i < 1000000000; i++) {
// some code
}
console.timeEnd("Test code");
在控制臺中,您將看到類似於以下內容的輸出:
Test code: 824.047119140625 ms
使用 performance.now()
API 和使用 console.time()
和 console.timeEnd()
這兩種方法都可以快速評測代碼的性能,但這些方法只是大致估算代碼運行速度,而不是精確的性能測量工具。因此,如果需要更精確的評測,可以使用專業的性能分析工具。
三、使用第三方庫
如果需要進行更嚴格的性能測試,您可以使用第三方庫,例如 Benchmark.js 或 JSLitmus。這些庫可以在多次運行代碼的情況下進行測試,並以可讀的方式報告結果,以便更好地評估性能。
例如,使用 Benchmark.js 進行性能測試的代碼可能如下所示:
var suite = new Benchmark.Suite;
// 添加測試用例
suite.add('Test code', function() {
for (let i = 0; i < 1000000000; i++) {
// some code
}
})
// 運行測試用例
.on('cycle', function(event) {
console.log(String(event.target));
})
.run({ 'async': true });
可以使用各種配置選項,例如指定運行次數、自動運行測試等,以適應需求。通過使用這些庫,可以對代碼的性能進行更精確的評估,並瞭解其在不同瀏覽器和設備環境中的表現。
四、使用瀏覽器開發者工具
例如,如果使用 Chrome 瀏覽器,可以使用 Chrome 開發者工具評測代碼的運行速度。
-
打開 Chrome 瀏覽器,並打開需要評測的頁面。
-
單擊瀏覽器的“更多工具”選項卡,然後選擇“開發者工具”。
-
在開發者工具的“控制台”選項卡中,單擊“Performance”按鈕,以啟動性能分析器。
-
單擊“開始”按鈕,以開始評測代碼的運行速度。
-
在瀏覽器控制臺中運行代碼,並觀察分析結果。您可以看到詳細的性能分析報告,其中包括代碼的 CPU 使用情況、記憶體使用情況、幀率等。
如使用 Firefox 瀏覽器,可以使用 Firefox 開發者工具評測代碼的運行速度。Firefox 開發者工具的使用方法類似 Chrome 開發者工具,請參閱 Firefox 開發者工具的文檔以獲取更多信息。
瀏覽器工具是評測 JavaScript 代碼運行速度的非常方便的工具。通過使用它,您可以獲得有關代碼性能的詳細信息,並確保代碼在各種環境中良好運行。
作者:yuzhihui
出處:https://www.cnblogs.com/yuzhihui/p/17104239.html
聲明:歡迎任何形式的轉載,但請務必註明出處!!!
-
隨著對用戶體驗要求的提高,產品要求提升用戶體驗,多端體驗一致。隨著多端相同的業務也越來越多,需要投入IOS,Android,Web多端開發人員。這就迫切的需要一種一次開發同時使用在Android ,IOS ,Web的解決方案。達到降本增效的目的。在幾個小業面嘗試,總結經驗後,我們採用react-na... ...
-
源碼下載地址 https://github.com/Aizhuxueliang/springboot_shiro.git 前提你電腦的安裝好這些工具:jdk8、idea、maven、git、mysql; shiro的主要概念 Shiro是一個強大的簡單易用的Java安全框架,主要用來更便捷的認證、授 ...
-
有多種實現方式: 一、使用 Set 對象: Array.from(new Set(array)) 該方法會先創建一個 Set 對象,然後再使用 Array.from 方法將 Set 對象轉換為數組,因為 Set 對象不允許有重覆的元素,所以這樣可以實現去重的效果。 但是,如果數組中的元素是對象,Se ...
-
Web一階段面試題 1.簡述 <!doctype> 的作用? <!DOCTYPE> 聲明叫做文檔類型定義(DTD),聲明的作用是為了告訴瀏覽器該文件的類型。讓瀏覽器解析器知道應該用哪個規範來解析文檔。 五大主流的瀏覽器及其內核? Chrome 內核 Blink Safari 內核 Webkit Op ...
-
這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 項目效果 我們今天要實現的是一個路徑規劃的功能,有兩個輸入框。輸入起點終點,然後查詢,得到規劃的路徑,效果如下: 我們會用到以下庫: Axios:用於發送請求,請求高德地圖的地理編碼API Jquery:也用於發送請求 Cesium:地圖 ...
-
上文創建了一堆 utils、component-info,並實現了新組件模塊相關目錄和文件的創建。本文繼續實現後面的內容。 1 組件樣式文件並導入 在 src/service 目錄中創建 init-scss.ts 文件,該文件導出 initScss 函數。 由於 .vue 類型的組件的樣式就直接寫在 ...
-
JavaScript 詞法環境 本文主要講解JS詞法環境,我們將看到什麼是詞法環境,詞法範圍如何工作,函數內部的名稱如何解析,內部屬性,弄清楚詞法環境利於我們理解閉包。讓我們開始吧... 什麼是詞法環境? 在理解閉包時,最大的混淆來源是術語“辭彙環境”,或者只是“辭彙”這個詞。在電腦科學中術語“詞 ...
-
演示代碼使用 Vue3 + ts + Vite 編寫,但是也會列出適用於 Vue2 的優化技巧,如果某個優化只適用於 Vue3 或者 Vue2,我會在標題中標出來。 代碼優化 v-for 中使用 key 使用 v-for 更新已經渲染的元素列表時,預設用就地復用策略;列表數據修改的時候,他會根據 k ...