欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

benny簡(jiǎn)單框架benchmark功能使用

 更新時(shí)間:2022年08月15日 11:29:30   作者:嘿嘿Z  
這篇文章主要為大家介紹了benny簡(jiǎn)單框架benchmark功能使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

benny 是一個(gè)簡(jiǎn)單的 benchmark 框架,當(dāng)你需要測(cè)試自己的庫或是方法性能時(shí),可使用它來進(jìn)行對(duì)其進(jìn)行基準(zhǔn)測(cè)試。

前排先上 GitHub 地址

官方標(biāo)榜的特性為:

  • 可以簡(jiǎn)單的編寫任何同步或異步代碼
  • 可為每個(gè)用例單獨(dú)配置
  • 可選擇性跳過或只執(zhí)行特定的用力
  • 支持多種結(jié)果類型:
    • JSON
    • CSV
    • HTML Table
    • HTML Chart
  • 不需要額外的設(shè)置幾個(gè)輸出
  • 套件結(jié)果為 Promise

使用

先看下使用方法:

const b = require('benny');
b.suite(
    'Example',
    b.add('Reduce two elements', () => {
        [1, 2].reduce((a, b) => a + b);
    }),
    b.add('Reduce five elements', () => {
        [1, 2, 3, 4, 5].reduce((a, b) => a + b);
    }),
    b.cycle(),
    b.complete(),
    b.save({ file: 'reduce', version: '1.0.0' }),
    b.save({ file: 'reduce', format: 'chart.html' })
);

如上定義了一組套件,名稱為 Example,然后通過 add 添加兩個(gè)用例,cycle 用來定義用例的輸出,可傳入函數(shù)來自定義,complete 默認(rèn)為輸出基準(zhǔn)測(cè)試結(jié)果,同樣可傳入函數(shù)來自定義處理。

隨后的 save 則是用來保存結(jié)果,file 為文件名稱,format 為輸出的格式。支持的格式上面已經(jīng)寫過,不再贅述。

可嘗試執(zhí)行上述 benchmark 文件然后查看輸出結(jié)果:

Running "Example" suite...
Progress: 100%
  Reduce two elements:
    213 985 744 ops/s, ±0.61%   | fastest
  Reduce five elements:
    109 395 371 ops/s, ±0.66%   | slowest, 48.88% slower
Finished 2 cases!
  Fastest: Reduce two elements
  Slowest: Reduce five elements
Saved to: benchmark/results/reduce.json
Saved to: benchmark/results/reduce.chart.html

默認(rèn)會(huì)輸出用例名稱及其執(zhí)行效率,如上 Reduce two elements 部分為該用例名稱,213 985 744 ops/s 為執(zhí)行效率表示該方法每秒執(zhí)行了 213 985 744 次,±0.61% 為單案例執(zhí)行時(shí)采集結(jié)果的誤差范圍值,fastest 表示其為最快的用例,slowest 其為最慢的用例,非最快用例后會(huì)標(biāo)注效率的百分比差。

如果使用了圖表還可打開圖表查看,會(huì)更直觀,如上結(jié)果對(duì)應(yīng)的圖表為:

圖表可直接將輸出的圖表 html 打開查看,其中使用 chart.js 進(jìn)行渲染。

其他功能

除了上述基礎(chǔ)使用,benny 還提供了一些其他的功能,比如可以通過調(diào)用 add.skip 來跳過某個(gè)用例,或 add.only 來跳過所有其他用例只執(zhí)行該用例。

如果用例代碼為異步代碼,直接將用例定義為 async 即可。

add('Async benchmark without setup', async () => {=
    await delay(0.5);
    // 結(jié)果為 2 ops/s
});

除此之外 benny 還支持一些自定義選項(xiàng):

delay - 每次測(cè)試用例執(zhí)行后的休息時(shí)間

initCount - 每次測(cè)試用例執(zhí)行前的初始化次數(shù)

maxTime - 執(zhí)行的最大次數(shù)

minTime - 執(zhí)行的最小次數(shù)

minSamples - 最小采樣次數(shù)

配置的方式有兩種,一種是通過 configurecases

b.configure({
    cases: options
});

即可為所有用例添加配置,也可在 add 時(shí)為單個(gè)用例添加配置:

b.add(
    'Reduce two elements',
    () => {
        [1, 2].reduce((a, b) => a + b);
    },
    options
);

除了上述配置外,configure 還可配置一些全局配置,不過目前只有一個(gè) minDisplayPrecision,用來配置輸出內(nèi)容的精度,默認(rèn)為 2。

總結(jié)

通過 benny 可以方便的為一些方法等進(jìn)行基準(zhǔn)測(cè)試,方便查看函數(shù)的執(zhí)行效率,測(cè)量各種代碼的性能,并且支持多種輸出結(jié)果,方便各種場(chǎng)景下展示結(jié)果。

如果有類似需要測(cè)量函數(shù)性能,或者想要測(cè)量某些變更對(duì)性能的影響程度時(shí),不妨試試看。

以上就是benny簡(jiǎn)單框架benchmark功能使用的詳細(xì)內(nèi)容,更多關(guān)于benny框架benchmark功能的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Koa 中的錯(cuò)誤處理解析

    Koa 中的錯(cuò)誤處理解析

    這篇文章主要介紹了Koa 中的錯(cuò)誤處理解析,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-04-04
  • nodejs個(gè)人博客開發(fā)第七步?后臺(tái)登陸

    nodejs個(gè)人博客開發(fā)第七步?后臺(tái)登陸

    這篇文章主要為大家詳細(xì)介紹了nodejs個(gè)人博客開發(fā)的后臺(tái)登陸功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 詳解利用nodejs對(duì)本地json文件進(jìn)行增刪改查

    詳解利用nodejs對(duì)本地json文件進(jìn)行增刪改查

    這篇文章主要介紹了詳解利用nodejs對(duì)本地json文件進(jìn)行增刪改查,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 淺析 NodeJs 的幾種文件路徑

    淺析 NodeJs 的幾種文件路徑

    本篇文章主要介紹了淺析 NodeJs 的幾種文件路徑,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • 詳解nodejs微信公眾號(hào)開發(fā)——2.自動(dòng)回復(fù)

    詳解nodejs微信公眾號(hào)開發(fā)——2.自動(dòng)回復(fù)

    這篇文章主要介紹了詳解nodejs微信公眾號(hào)開發(fā)——2.自動(dòng)回復(fù),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-04-04
  • node.js [superAgent] 請(qǐng)求使用示例

    node.js [superAgent] 請(qǐng)求使用示例

    這篇文章主要介紹了node.js [superAgent] 請(qǐng)求使用示例,分別給大家匯總了post請(qǐng)求、get請(qǐng)求、delete請(qǐng)求和put請(qǐng)求的示例,推薦給大家,希望大家能夠喜歡。
    2015-03-03
  • ajax+node+request爬取網(wǎng)絡(luò)圖片的實(shí)例(宅男福利)

    ajax+node+request爬取網(wǎng)絡(luò)圖片的實(shí)例(宅男福利)

    下面小編就為大家?guī)硪黄猘jax+node+request爬取網(wǎng)絡(luò)圖片的實(shí)例(宅男福利)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • node.js中g(shù)runt和gulp的區(qū)別詳解

    node.js中g(shù)runt和gulp的區(qū)別詳解

    這篇文章主要介紹了node.js中g(shù)runt和gulp的區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • React和Node.js快速上傳進(jìn)度條功能實(shí)現(xiàn)

    React和Node.js快速上傳進(jìn)度條功能實(shí)現(xiàn)

    這篇文章主要為大家介紹了React和Node.js快速上傳進(jìn)度條功能實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • node?+?multer?實(shí)現(xiàn)文件上傳過程

    node?+?multer?實(shí)現(xiàn)文件上傳過程

    這篇文章主要介紹了node?+?multer?實(shí)現(xiàn)文件上傳過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評(píng)論