<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
benny
是一個簡單的 benchmark
框架,當你需要測試自己的庫或是方法效能時,可使用它來進行對其進行基準測試。
前排先上 GitHub 地址
官方標榜的特性為:
JSON
CSV
HTML Table
HTML Chart
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
新增兩個用例,cycle
用來定義用例的輸出,可傳入函數來自定義,complete
預設為輸出基準測試結果,同樣可傳入函數來自定義處理。
隨後的 save
則是用來儲存結果,file
為檔名稱,format
為輸出的格式。支援的格式上面已經寫過,不再贅述。
可嘗試執行上述 benchmark
檔案然後檢視輸出結果:
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
預設會輸出用例名稱及其執行效率,如上 Reduce two elements
部分為該用例名稱,213 985 744 ops/s
為執行效率表示該方法每秒執行了 213 985 744
次,±0.61% 為單案例執行時採集結果的誤差範圍值,fastest
表示其為最快的用例,slowest
其為最慢的用例,非最快用例後會標註效率的百分比差。
如果使用了圖表還可開啟圖表檢視,會更直觀,如上結果對應的圖表為:
圖表可直接將輸出的圖表 html
開啟檢視,其中使用 chart.js
進行渲染。
除了上述基礎使用,benny
還提供了一些其他的功能,比如可以通過呼叫 add.skip
來跳過某個用例,或 add.only
來跳過所有其他用例只執行該用例。
如果用例程式碼為非同步程式碼,直接將用例定義為 async
即可。
add('Async benchmark without setup', async () => {= await delay(0.5); // 結果為 2 ops/s });
除此之外 benny
還支援一些自定義選項:
delay
- 每次測試用例執行後的休息時間
initCount
- 每次測試用例執行前的初始化次數
maxTime
- 執行的最大次數
minTime
- 執行的最小次數
minSamples
- 最小取樣次數
設定的方式有兩種,一種是通過 configure
的 cases
:
b.configure({ cases: options });
即可為所有用例新增設定,也可在 add
時為單個用例新增設定:
b.add( 'Reduce two elements', () => { [1, 2].reduce((a, b) => a + b); }, options );
除了上述設定外,configure
還可設定一些全域性設定,不過目前只有一個 minDisplayPrecision
,用來設定輸出內容的精度,預設為 2。
通過 benny
可以方便的為一些方法等進行基準測試,方便檢視函數的執行效率,測量各種程式碼的效能,並且支援多種輸出結果,方便各種場景下展示結果。
如果有類似需要測量函數效能,或者想要測量某些變更對效能的影響程度時,不妨試試看。
以上就是benny簡單框架benchmark功能使用的詳細內容,更多關於benny框架benchmark功能的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45