您好,登錄后才能下訂單哦!
這篇“benny簡(jiǎn)單框架benchmark功能如何使用”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“benny簡(jiǎn)單框架benchmark功能如何使用”文章吧。
benny
是一個(gè)簡(jiǎn)單的 benchmark
框架,當(dāng)你需要測(cè)試自己的庫(kù)或是方法性能時(shí),可使用它來(lái)進(jìn)行對(duì)其進(jìn)行基準(zhǔn)測(cè)試。
前排先上 GitHub 地址
官方標(biāo)榜的特性為:
可以簡(jiǎn)單的編寫(xiě)任何同步或異步代碼
可為每個(gè)用例單獨(dú)配置
可選擇性跳過(guò)或只執(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
,然后通過(guò) add
添加兩個(gè)用例,cycle
用來(lái)定義用例的輸出,可傳入函數(shù)來(lái)自定義,complete
默認(rèn)為輸出基準(zhǔn)測(cè)試結(jié)果,同樣可傳入函數(shù)來(lái)自定義處理。
隨后的 save
則是用來(lái)保存結(jié)果,file
為文件名稱,format
為輸出的格式。支持的格式上面已經(jīng)寫(xiě)過(guò),不再贅述。
可嘗試執(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)注效率的百分比差。
如果使用了圖表還可打開(kāi)圖表查看,會(huì)更直觀,如上結(jié)果對(duì)應(yīng)的圖表為:
圖表可直接將輸出的圖表 html
打開(kāi)查看,其中使用 chart.js
進(jìn)行渲染。
除了上述基礎(chǔ)使用,benny
還提供了一些其他的功能,比如可以通過(guò)調(diào)用 add.skip
來(lái)跳過(guò)某個(gè)用例,或 add.only
來(lái)跳過(guò)所有其他用例只執(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ù)
配置的方式有兩種,一種是通過(guò) configure
的 cases
:
b.configure({ cases: options });
即可為所有用例添加配置,也可在 add
時(shí)為單個(gè)用例添加配置:
b.add( 'Reduce two elements', () => { [1, 2].reduce((a, b) => a + b); }, options );
除了上述配置外,configure
還可配置一些全局配置,不過(guò)目前只有一個(gè) minDisplayPrecision
,用來(lái)配置輸出內(nèi)容的精度,默認(rèn)為 2。
以上就是關(guān)于“benny簡(jiǎn)單框架benchmark功能如何使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。