JavaScript?評(píng)測(cè)代碼運(yùn)行速度的案例代碼
JavaScript 評(píng)測(cè)代碼運(yùn)行速度
一、使用 performance.now() API
在 JavaScript 中,可以使用 performance.now()
API 來評(píng)測(cè)代碼的運(yùn)行速度。該 API 返回當(dāng)前頁(yè)面的高精度時(shí)間戳,您可以在代碼執(zhí)行前后調(diào)用它來計(jì)算代碼執(zhí)行所需的時(shí)間。
例如:
let t0 = performance.now(); // 執(zhí)行需要測(cè)試的代碼 for (let i = 0; i < 1000000000; i++) { // some code } let t1 = performance.now(); console.log("Code took " + (t1 - t0) + " milliseconds.");
注意,performance.now()
API 只在現(xiàn)代瀏覽器中可用,并且可能會(huì)受到其他因素(例如計(jì)算機(jī)性能和當(dāng)前頁(yè)面的負(fù)載)的影響,因此該結(jié)果只能作為相對(duì)值。
二、使用 console.time() 和 console.timeEnd()
另一種評(píng)測(cè) JavaScript 代碼運(yùn)行速度的方法是使用 console.time()
和 console.timeEnd()
。這兩個(gè)方法允許您給特定代碼塊計(jì)時(shí),并在代碼執(zhí)行后在控制臺(tái)中顯示計(jì)時(shí)結(jié)果。
例如:
console.time("Test code"); // 執(zhí)行需要測(cè)試的代碼 for (let i = 0; i < 1000000000; i++) { // some code } console.timeEnd("Test code");
在控制臺(tái)中,您將看到類似于以下內(nèi)容的輸出:
Test code: 824.047119140625 ms
使用 performance.now()
API 和使用 console.time()
和 console.timeEnd()
這兩種方法都可以快速評(píng)測(cè)代碼的性能,但這些方法只是大致估算代碼運(yùn)行速度,而不是精確的性能測(cè)量工具。因此,如果需要更精確的評(píng)測(cè),可以使用專業(yè)的性能分析工具。
三、使用第三方庫(kù)
如果需要進(jìn)行更嚴(yán)格的性能測(cè)試,您可以使用第三方庫(kù),例如 Benchmark.js 或 JSLitmus。這些庫(kù)可以在多次運(yùn)行代碼的情況下進(jìn)行測(cè)試,并以可讀的方式報(bào)告結(jié)果,以便更好地評(píng)估性能。
例如,使用 Benchmark.js 進(jìn)行性能測(cè)試的代碼可能如下所示:
var suite = new Benchmark.Suite; // 添加測(cè)試用例 suite.add('Test code', function() { for (let i = 0; i < 1000000000; i++) { // some code } }) // 運(yùn)行測(cè)試用例 .on('cycle', function(event) { console.log(String(event.target)); }) .run({ 'async': true });
可以使用各種配置選項(xiàng),例如指定運(yùn)行次數(shù)、自動(dòng)運(yùn)行測(cè)試等,以適應(yīng)需求。通過使用這些庫(kù),可以對(duì)代碼的性能進(jìn)行更精確的評(píng)估,并了解其在不同瀏覽器和設(shè)備環(huán)境中的表現(xiàn)。
四、使用瀏覽器開發(fā)者工具
例如,如果使用 Chrome 瀏覽器,可以使用 Chrome 開發(fā)者工具評(píng)測(cè)代碼的運(yùn)行速度。
- 打開 Chrome 瀏覽器,并打開需要評(píng)測(cè)的頁(yè)面。
- 單擊瀏覽器的“更多工具”選項(xiàng)卡,然后選擇“開發(fā)者工具”。
- 在開發(fā)者工具的“控制臺(tái)”選項(xiàng)卡中,單擊“Performance”按鈕,以啟動(dòng)性能分析器。
- 單擊“開始”按鈕,以開始評(píng)測(cè)代碼的運(yùn)行速度。
- 在瀏覽器控制臺(tái)中運(yùn)行代碼,并觀察分析結(jié)果。您可以看到詳細(xì)的性能分析報(bào)告,其中包括代碼的 CPU 使用情況、內(nèi)存使用情況、幀率等。
如使用 Firefox 瀏覽器,可以使用 Firefox 開發(fā)者工具評(píng)測(cè)代碼的運(yùn)行速度。Firefox 開發(fā)者工具的使用方法類似 Chrome 開發(fā)者工具,請(qǐng)參閱 Firefox 開發(fā)者工具的文檔以獲取更多信息。
補(bǔ)充:JS中代碼執(zhí)行速度測(cè)試
console.time("timer");for (let index = 0; index < 100; index++) { } console.timeEnd("timer");//timer: 0.007080078125ms
到此這篇關(guān)于JavaScript 評(píng)測(cè)代碼運(yùn)行速度的文章就介紹到這了,更多相關(guān)js測(cè)試代碼運(yùn)行速度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS變量中有var定義和無var定義的區(qū)別以及es6中l(wèi)et命令和const命令
這篇文章主要介紹了JS變量中有var定義和無var定義的區(qū)別以及es6中l(wèi)et命令和const命令,需要的朋友可以參考下2017-02-02淺談JavaScript窗體Window.ShowModalDialog使用
這篇文章主要介紹了淺談JavaScript窗體Window.ShowModalDialog使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07詳解使用fetch發(fā)送post請(qǐng)求時(shí)的參數(shù)處理
這篇文章主要介紹了詳解使用fetch發(fā)送post請(qǐng)求時(shí)的參數(shù)處理的相關(guān)資料,需要的朋友可以參考下2017-04-04JavaScript檢測(cè)并限制復(fù)選框選中個(gè)數(shù)的方法
這篇文章主要介紹了JavaScript檢測(cè)并限制復(fù)選框選中個(gè)數(shù)的方法,涉及javascript針對(duì)復(fù)選框的判定與運(yùn)算相關(guān)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-08-08