国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷資訊 > 網(wǎng)絡(luò)營(yíng)銷 > 推薦一種測(cè)試JavaScript執(zhí)行性能和性能比較的方法

推薦一種測(cè)試JavaScript執(zhí)行性能和性能比較的方法

時(shí)間:2022-05-29 14:33:01 | 來(lái)源:網(wǎng)絡(luò)營(yíng)銷

時(shí)間:2022-05-29 14:33:01 來(lái)源:網(wǎng)絡(luò)營(yíng)銷

隨著越來(lái)越多的站長(zhǎng)對(duì)網(wǎng)站形象方面的關(guān)注,js文件也使用的越來(lái)越多了,于是乎一些細(xì)心的seo優(yōu)化人員也開(kāi)始重視JavaScript 的性能問(wèn)題了,同時(shí)也導(dǎo)致了越來(lái)越多的 JS 性能測(cè)試框架和一些工具誕生,比如說(shuō) JSLitmus、jsperf 等等,由于本人對(duì)JavaScript方面的知識(shí)掌握的也不是太深,所以今天我們?cè)趦|企邦上要探討分享的是一種比較簡(jiǎn)單、實(shí)用、容易上手的 JS 性能測(cè)試的方法。

舉例來(lái)說(shuō),現(xiàn)在有一個(gè)只包含數(shù)字類型的數(shù)組,然后我會(huì)用兩種方法對(duì)數(shù)組元素求和,比較兩個(gè)方法的性能。

首先生成這么一個(gè)長(zhǎng)度是 10000 的 [0, 1, 2, 3, .... 9999] 數(shù)組,長(zhǎng)度不能太短,否則比較差值不大,效果不是很明顯。

var arr = [], // 聲明一個(gè)空數(shù)組
  sum = 0; // 總和初始值
  // 生成一個(gè)長(zhǎng)度是 10000 的數(shù)組
  for (var index = 0, len = 10000; index<len; index++) {
  arr.push(index);
  }

第一種方法是用for循環(huán)去累加sum變量,得到最終結(jié)果。

// for 循環(huán)
  function forLoop(arr) {
  var i = 0,
l = arr.length;
  for (; i<l; i++) {
sum += arr[i];
 }
  }

第二種方法是用遞歸,用數(shù)組的 shift() 方法每次刪除數(shù)組的第一個(gè)元素,并將其累加,遞歸執(zhí)行。

// shift 遞歸
  function shiftLoop(arr) {
 if (!!arr.length) {
sum += arr.shift();
arguments.callee(arr);
 }
  }

分別執(zhí)行以上這兩個(gè)方法,其實(shí)功能都是一樣一樣的,而我們?nèi)庋蹘缀鯚o(wú)法分辨這兩者到底誰(shuí)執(zhí)行的更快,這時(shí)候我們就要用事實(shí)說(shuō)話,讓數(shù)據(jù)說(shuō)話,編寫以下簡(jiǎn)單的性能測(cè)試函數(shù),就能知道答案了。

// 最簡(jiǎn)單的性能測(cè)試函數(shù)
  function test(fn, param) {
 var s, d;
  // 記錄執(zhí)行的起始時(shí)間
 s = new Date().getTime();
 // 執(zhí)行待測(cè)試的方法
 fn(param);
 // 記錄執(zhí)行的結(jié)束時(shí)間
 d = new Date().getTime();
 // 輸出待測(cè)試方法所運(yùn)行的結(jié)果和耗時(shí)
 alert( ‘計(jì)算結(jié)果:’ + sum + ‘,耗時(shí):’ + (d-s) + ‘毫秒’ );
  }

最后,再分別執(zhí)行剛才編寫的 test() 方法,其參數(shù)就是需要測(cè)試的方法名和該方法所用到的參數(shù):

// 分別執(zhí)行看結(jié)果
  // test(forLoop, arr);
  test(shiftLoop, arr);

在我的電腦上測(cè)試發(fā)現(xiàn),用for循環(huán)僅需 0~1 毫秒,而用shift遞歸則需要 75 毫秒左右,可見(jiàn)經(jīng)過(guò)比較得知,for循環(huán)比 shift 遞歸執(zhí)行速度更快,性能更佳!

這個(gè)方法測(cè)試只是要你了解其中原理,以便在平時(shí)寫JS 的過(guò)程中對(duì)性能有猶豫的時(shí)候,你也可以編寫這么一個(gè)簡(jiǎn)單的方法來(lái)幫助你擇優(yōu)錄??!希望對(duì)你能有所幫助。

關(guān)鍵詞:性能,方法,執(zhí)行

74
73
25
news

版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉