Criterion.rs 运行基准测试失败

问题描述

我正在尝试为项目的criterion.rs 设置github 操作。这是我得到的错误 -

/usr/share/rust/.cargo/bin/critcmp master changes
group                                 changes                                master
-----                                 -------                                ------
b_benchmark_rbac_model_large          1.00     16.0±1.22ms        ? ?/sec    1.02     16.3±0.91ms        ? ?/sec
benchmark priority model              1.00      8.1±0.53µs        ? ?/sec    1.00      8.1±0.41µs        ? ?/sec
benchmark_abac_model                  1.00      4.9±0.35µs        ? ?/sec    1.02      5.0±0.30µs        ? ?/sec
benchmark_basic_model                 1.02      7.1±0.48µs        ? ?/sec    1.00      7.0±0.45µs        ? ?/sec
benchmark_key_match                   1.00     30.2±1.92µs        ? ?/sec    1.00     30.0±1.65µs        ? ?/sec
benchmark_raw                         1.01     18.1±1.11ns        ? ?/sec    1.00     17.9±0.95ns        ? ?/sec
benchmark_rbac_model                  1.04     11.9±0.79µs        ? ?/sec    1.00     11.4±0.80µs        ? ?/sec
benchmark_rbac_model_medium           1.00  1538.0±64.01µs        ? ?/sec    1.02  1571.9±78.32µs        ? ?/sec
benchmark_rbac_model_with_domains     1.00     11.6±0.81µs        ? ?/sec    1.01     11.7±0.94µs        ? ?/sec
benchmark_rbac_with_deny              1.00     16.1±1.02µs        ? ?/sec    1.02     16.4±1.20µs        ? ?/sec
benchmark_rbac_with_resource_roles    1.00      8.4±0.57µs        ? ?/sec    1.00      8.4±0.53µs        ? ?/sec
benchmark_role_manager_large          1.01      7.9±0.42ms        ? ?/sec    1.00      7.8±0.39ms        ? ?/sec
benchmark_role_manager_medium         1.00   734.6±39.11µs        ? ?/sec    1.02   752.1±51.47µs        ? ?/sec
benchmark_role_manager_small          1.03     71.7±4.49µs        ? ?/sec    1.00     69.8±3.50µs        ? ?/sec
┌─────────┬──────────────────────────────────────┬──────────────────────┬───────────────────┬────────────┐
│ (index) │                 name                 │   changesDuration    │  masterDuration   │ difference │
├─────────┼──────────────────────────────────────┼──────────────────────┼───────────────────┼────────────┤
│    0    │    'b_benchmark_rbac_model_large'    │  '**16.0±1.22ms**'   │   '16.3±0.91ms'   │   '-2.0'   │
│    1    │      'benchmark priority model'      │     '8.1±0.53µs'     │   '8.1±0.41µs'    │   '0.0'    │
│    2    │        'benchmark_abac_model'        │   '**4.9±0.35µs**'   │   '5.0±0.30µs'    │   '-2.0'   │
│    3    │       'benchmark_basic_model'        │     '7.1±0.48µs'     │ '**7.0±0.45µs**'  │   '+2.0'   │
│    4    │        'benchmark_key_match'         │    '30.2±1.92µs'     │   '30.0±1.65µs'   │   '0.0'    │
│    5    │           'benchmark_raw'            │    '18.1±1.11ns'     │ '**17.9±0.95ns**' │   '+1.0'   │
│    6    │        'benchmark_rbac_model'        │    '11.9±0.79µs'     │ '**11.4±0.80µs**' │   '+4.0'   │
│    7    │    'benchmark_rbac_model_medium'     │ '**1538.0±64.01µs**' │ '1571.9±78.32µs'  │   '-2.0'   │
│    8    │ 'benchmark_rbac_model_with_domains'  │  '**11.6±0.81µs**'   │   '11.7±0.94µs'   │  '-0.99'   │
│    9    │      'benchmark_rbac_with_deny'      │  '**16.1±1.02µs**'   │   '16.4±1.20µs'   │   '-2.0'   │
│   10    │ 'benchmark_rbac_with_resource_roles' │     '8.4±0.57µs'     │   '8.4±0.53µs'    │   '0.0'    │
│   11    │    'benchmark_role_manager_large'    │     '7.9±0.42ms'     │ '**7.8±0.39ms**'  │   '+1.0'   │
│   12    │   'benchmark_role_manager_medium'    │ '**734.6±39.11µs**'  │  '752.1±51.47µs'  │   '-2.0'   │
│   13    │    'benchmark_role_manager_small'    │    '71.7±4.49µs'     │ '**69.8±3.50µs**' │   '+3.0'   │
│   14    │                  ''                  │      undefined       │     undefined     │   '+NaN'   │
└─────────┴──────────────────────────────────────┴──────────────────────┴───────────────────┴────────────┘
TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'TLSSocket'
    |     property '_httpMessage' -> object with constructor 'ClientRequest'
    --- property 'socket' closes the circle
    at JSON.stringify (<anonymous>)
    at Object.toCommandValue (/home/runner/work/_actions/boa-dev/criterion-compare-action/master/dist/index.js:1:7497)
    at escapeData (/home/runner/work/_actions/boa-dev/criterion-compare-action/master/dist/index.js:1:3737)
    at Command.toString (/home/runner/work/_actions/boa-dev/criterion-compare-action/master/dist/index.js:1:3668)
    at Object.issueCommand (/home/runner/work/_actions/boa-dev/criterion-compare-action/master/dist/index.js:1:3161)
    at Object.debug (/home/runner/work/_actions/boa-dev/criterion-compare-action/master/dist/index.js:1:5958)
    at main (/home/runner/work/_actions/boa-dev/criterion-compare-action/master/dist/index.js:1:1119)
    at processticksAndRejections (internal/process/task_queues.js:93:5)
Error: Unhanded error:
TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'TLSSocket'
    |     property '_httpMessage' -> object with constructor 'ClientRequest'
    --- property 'socket' closes the circle

链接 - https://github.com/smrpn/casbin-rs/pull/2/checks?check_run_id=2268954721

我从另一个仓库看到了如何设置这个东西 - https://github.com/boa-dev/boa

它应该是这样工作的 - https://github.com/boa-dev/boa/runs/2078481320?check_suite_focus=true

这是我的 pull_request.yml -

on: [pull_request]
name: Benchmarks
jobs:
  runBenchmark:
    name: run benchmark
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          override: true
          profile: minimal
      - name: Cache cargo
        uses: actions/cache@v2.1.4
        with:
          path: |
            target
            ~/.cargo/git
            ~/.cargo/registry
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - uses: boa-dev/criterion-compare-action@master
        with:
          token: ${{ secrets.TOKEN }}
          cwd: benches

这里可能有什么问题?什么是修复?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)