indutny / bn.js

BigNum in pure javascript
MIT License
1.19k stars 150 forks source link

Benchmark for BigInt #226

Closed fanatid closed 4 years ago

fanatid commented 5 years ago

@mathiasbynens can you share benchmark which was used in article? https://v8.dev/features/bigint#use-cases

bn.js VS BigInt

$ node --version
v12.8.0
$ uname -r
5.1.20-300.fc30.x86_64
$ grep 'model name' -m 1 /proc/cpuinfo
model name  : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
$ SEED=d3010f0048b13a628169fc81a4c0318d node index.js 
Load bignum error: Cannot find module 'bignum'
Seed: d3010f0048b13a628169fc81a4c0318d
Benchmarking: create-10
bn.js#create-10 x 962,231 ops/sec ±1.13% (9 runs sampled)
BigInt#create-10 x 2,684,467 ops/sec ±0.72% (9 runs sampled)
------------------------
Fastest is BigInt#create-10
========================
Benchmarking: toString-10
bn.js#toString-10 x 466,028 ops/sec ±0.94% (9 runs sampled)
BigInt#toString-10 x 691,462 ops/sec ±0.41% (7 runs sampled)
------------------------
Fastest is BigInt#toString-10
========================
Benchmarking: toString-hex
bn.js#toString-hex x 274,852 ops/sec ±1.54% (8 runs sampled)
BigInt#toString-hex x 7,493,824 ops/sec ±1.60% (9 runs sampled)
------------------------
Fastest is BigInt#toString-hex
========================
Benchmarking: add
bn.js#add x 10,930,340 ops/sec ±0.88% (9 runs sampled)
BigInt#add x 10,876,360 ops/sec ±0.59% (9 runs sampled)
------------------------
Fastest is bn.js#add,BigInt#add
========================
Benchmarking: sub
bn.js#sub x 8,617,757 ops/sec ±1.47% (8 runs sampled)
BigInt#sub x 10,467,586 ops/sec ±0.76% (9 runs sampled)
------------------------
Fastest is BigInt#sub
========================
Benchmarking: mul
bn.js#mul x 3,649,547 ops/sec ±0.80% (8 runs sampled)
BigInt#mul x 5,113,954 ops/sec ±8.59% (8 runs sampled)
------------------------
Fastest is BigInt#mul
========================
Benchmarking: mul-jumbo
bn.js#mul-jumbo x 3,735 ops/sec ±0.59% (9 runs sampled)
BigInt#mul-jumbo x 22,364 ops/sec ±3.43% (8 runs sampled)
------------------------
Fastest is BigInt#mul-jumbo
========================
Benchmarking: sqr
bn.js#sqr x 3,667,287 ops/sec ±0.25% (8 runs sampled)
BigInt#sqr x 5,581,414 ops/sec ±1.21% (9 runs sampled)
------------------------
Fastest is BigInt#sqr
========================
Benchmarking: div
bn.js#div x 615,096 ops/sec ±0.69% (8 runs sampled)
BigInt#div x 2,321,200 ops/sec ±0.62% (9 runs sampled)
------------------------
Fastest is BigInt#div
========================
Benchmarking: mod
bn.js#mod x 625,200 ops/sec ±1.59% (9 runs sampled)
BigInt#mod x 2,279,238 ops/sec ±1.47% (9 runs sampled)
------------------------
Fastest is BigInt#mod
========================
mathiasbynens commented 5 years ago

Looping in @jakobkummerow, who ran the benchmarks. Jakob, is this something we can share?