Merge pull request #69 from paulmillr/patch-3

Readme: update benchmarks.
This commit is contained in:
Cayman 2020-12-08 08:24:08 -07:00 committed by GitHub
commit c700075914
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 11 deletions

View File

@ -88,23 +88,24 @@ The API is identical for all implementations.
## Benchmarks ## Benchmarks
- `blst`: [src/blst](src/blst) (node.js-only, bindings to C via node-gyp) - `blst`: [src/blst](src/blst) (node.js-only, bindings to C via node-gyp)
- `herumi`: [src/herumi](src/herumi) (node.js & browser, wasm) - `herumi`: [src/herumi](src/herumi) (node.js & browser, wasm)
- `noble`: [noble-bls12-381](https://github.com/paulmillr/noble-bls12-381) (node.js & browser, pure JS) - `noble`: [noble-bls12-381](https://github.com/paulmillr/noble-bls12-381) (node.js & browser, pure JS)
Results are in `ops/sec (x times slower)`, where `x times slower` = times slower than fastest implementation (`blst`). Results are in `ops/sec (x times slower)`, where `x times slower` = times slower than fastest implementation (`blst`).
| Function - `ops/sec` | `blst` | `herumi` | `noble`\* | | Function - `ops/sec` | `blst` | `herumi` | `noble` |
| ------------------------- | :----: | :----------: | :-----------: | | -------------------------------- | :----: | :----------: | :-----------: |
| `verify` | 443.75 | 46.658 (x9) | 12.355 (x36) | | `verify` | 326.38 | 47.674 (x7) | 17.906 (x18) |
| `verifyAggregate` (30) | 438.68 | 46.615 (x9) | 9.8803 (x44) | | `verifyAggregate` (30) | 453.29 | 51.151 (x9) | 18.372 (x25) |
| `verifyMultiple` (30) | 35.138 | 3.4332 (x10) | 0.9217 (x38) | | `verifyMultiple` (30) | 34.497 | 3.5233 (x10) | 2.0286 (x17) |
| `aggregate` (pubkeys, 30) | 15761 | 2603.5 (x6) | 42.956 (x366) | | `verifyMultipleSignatures` (30) | 26.381 | 3.1633 (x8) | - |
| `aggregate` (sigs, 30) | 6587.8 | 1018.7 (x6) | - | | `aggregate` (pubkeys, 30) | 15686 | 2898.9 (x5) | 1875.0 (x8) |
| `aggregate` (sigs, 30) | 6373.4 | 1033.0 (x6) | 526.25 (x12) |
| `sign` | 925.49 | 108.81 (x9) | 10.246 (x90) |
\*`noble` methods include serialization and deserialization to bytes, which may impact all benchmarks specially `aggregate`. \* `blst` and `herumi` performed 100 runs each, `noble` 10 runs.
\*\* `blst` and `herumi` performed 100 runs each, `noble` 10 runs.
Results from CI run https://github.com/ChainSafe/bls/runs/1488856560?check_suite_focus=true#step:12:13 Results from CI run https://github.com/ChainSafe/bls/runs/1513710175?check_suite_focus=true#step:12:13
## Spec versioning ## Spec versioning