91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

benny簡單框架benchmark功能如何使用

發布時間:2022-08-15 16:19:31 來源:億速云 閱讀:120 作者:iii 欄目:開發技術

這篇“benny簡單框架benchmark功能如何使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“benny簡單框架benchmark功能如何使用”文章吧。

引言

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 其為最慢的用例,非最快用例后會標注效率的百分比差。

如果使用了圖表還可打開圖表查看,會更直觀,如上結果對應的圖表為:

benny簡單框架benchmark功能如何使用

圖表可直接將輸出的圖表 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 - 最小采樣次數

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

b.configure({
    cases: options
});

即可為所有用例添加配置,也可在 add 時為單個用例添加配置:

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

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

以上就是關于“benny簡單框架benchmark功能如何使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永仁县| 两当县| 兰州市| 沁源县| 巴楚县| 五家渠市| 富蕴县| 西城区| 乌苏市| 铁岭县| 萨嘎县| 湖南省| 固阳县| 上犹县| 灵台县| 成都市| 临高县| 吉林省| 乳山市| 佳木斯市| 许昌县| 阳曲县| 永定县| 丰原市| 昌乐县| 峨眉山市| 泾川县| 广安市| 灌云县| 海宁市| 石嘴山市| 临桂县| 福州市| 会理县| 双城市| 西林县| 石柱| 额尔古纳市| 察隅县| 任丘市| 瑞丽市|