Skip to content

Commit

Permalink
Benchmark result
Browse files Browse the repository at this point in the history
  • Loading branch information
SnowCait authored Aug 23, 2024
1 parent 2ba1caf commit 43a1b0d
Showing 1 changed file with 62 additions and 32 deletions.
94 changes: 62 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Benchmark Nostr libraries' functions.
## Benchamarks

Full log is
[here](https://github.com/SnowCait/nostr-library-benchmarks/actions/runs/10510915550/job/29120662282).
[here](https://github.com/SnowCait/nostr-library-benchmarks/actions/runs/10532721144/job/29187417272).

### TypeScript (JavaScript)

Expand All @@ -15,64 +15,66 @@ deno bench --allow-env

```
cpu: AMD EPYC 7763 64-Core Processor
runtime: deno 1.46.0 (x86_64-unknown-linux-gnu)
runtime: deno 1.46.1 (x86_64-unknown-linux-gnu)
file:///home/runner/work/nostr-library-benchmarks/nostr-library-benchmarks/javascript-api.bench.ts
benchmark time (avg) iter/s (min … max) p75 p99 p995
---------------------------------------------------------------- -----------------------------
new URL 419.15 ns/iter 2,385,770.2 (408.32 ns … 529.9 ns) 422.27 ns 494.52 ns 529.9 ns
JSON.parse 74.23 ns/iter 13,471,685.9 (65.18 ns … 155.15 ns) 78.56 ns 86.24 ns 91.6 ns
new URL 432.83 ns/iter 2,310,397.6 (423.28 ns … 512.93 ns) 432.62 ns 499.58 ns 512.93 ns
JSON.parse 74.57 ns/iter 13,409,712.1 (64.3 ns … 113.94 ns) 78.48 ns 88.02 ns 103.46 ns
file:///home/runner/work/nostr-library-benchmarks/nostr-library-benchmarks/ndk.bench.ts
benchmark time (avg) iter/s (min … max) p75 p99 p995
--------------------------------------------------------------------- -----------------------------
sign 2.29 ms/iter 437.4 (2.09 ms … 3.03 ms) 2.32 ms 2.77 ms 2.89 ms
verifySignature 1.58 ms/iter 631.1 (1.41 ms … 3.07 ms) 1.57 ms 2.65 ms 3.07 ms
sign 2.4 ms/iter 416.7 (2.12 ms … 4.45 ms) 2.33 ms 4.25 ms 4.45 ms
verifySignature 1.58 ms/iter 631.8 (1.37 ms … 2.62 ms) 1.58 ms 2.55 ms 2.62 ms
file:///home/runner/work/nostr-library-benchmarks/nostr-library-benchmarks/nostr-tools.bench.ts
benchmark time (avg) iter/s (min … max) p75 p99 p995
----------------------------------------------------------------------- -----------------------------
generateSecretKey 5.41 µs/iter 184,721.6 (5.32 µs … 6.24 µs) 5.39 µs 6.24 µs 6.24 µs
getPublicKey 217.22 µs/iter 4,603.6 (197.46 µs … 679.38 µs) 211.18 µs 413.02 µs 448.16 µs
getEventHash 12.49 µs/iter 80,051.2 (8.06 µs … 57.25 µs) 12.57 µs 44.96 µs 51.02 µs
finalizeEvent 2.2 ms/iter 455.0 (2.02 ms … 4.36 ms) 2.25 ms 2.6 ms 2.91 ms
verifyEvent 1.51 ms/iter 660.3 (1.36 ms … 2.72 ms) 1.54 ms 2.67 ms 2.72 ms
serializeEvent 2.5 µs/iter 399,361.0 (1.49 µs … 43.06 µs) 1.81 µs 25.53 µs 33.59 µs
JSON.stringify 3.17 µs/iter 315,357.9 (2.33 µs … 5.59 µs) 3.53 µs 5.47 µs 5.53 µs
JSON.parse 3.23 µs/iter 309,214.6 (2.11 µs … 17.26 µs) 3.54 µs 5.64 µs 6.01 µs
generateSecretKey 5.31 µs/iter 188,153.2 (5.2 µs … 6.5 µs) 5.26 µs 6.5 µs 6.5 µs
getPublicKey 216.93 µs/iter 4,609.8 (194.46 µs … 684.54 µs) 209.98 µs 418.55 µs 443.42 µs
getEventHash 11.88 µs/iter 84,210.5 (7.84 µs … 115.93 µs) 11.78 µs 45.55 µs 48.75 µs
finalizeEvent 2.18 ms/iter 459.5 (2.02 ms … 4.13 ms) 2.22 ms 2.48 ms 2.74 ms
verifyEvent 1.5 ms/iter 665.3 (1.34 ms … 2.74 ms) 1.53 ms 2.63 ms 2.74 ms
serializeEvent 2.5 µs/iter 399,680.3 (1.47 µs … 55.84 µs) 1.8 µs 30.73 µs 38.86 µs
JSON.stringify 2.98 µs/iter 336,134.5 (2.13 µs … 13.76 µs) 3.17 µs 5.09 µs 7.32 µs
JSON.parse 3.06 µs/iter 327,011.1 (2.13 µs … 5.79 µs) 3.33 µs 5.01 µs 5.69 µs
file:///home/runner/work/nostr-library-benchmarks/nostr-library-benchmarks/nostr-wasm.bench.ts
benchmark time (avg) iter/s (min … max) p75 p99 p995
----------------------------------------------------------------------- -----------------------------
initNostrWasm 5.25 ms/iter 190.4 (3.75 ms … 8.47 ms) 6.43 ms 8.46 ms 8.47 ms
generateSecretKey 5.41 µs/iter 184,911.2 (4.14 µs … 11.87 µs) 5.66 µs 9.56 µs 11.87 µs
getPublicKey 280.31 µs/iter 3,567.5 (247.83 µs … 504.9 µs) 255.97 µs 501.89 µs 504.9 µs
finalizeEvent 547.27 µs/iter 1,827.2 (505.12 µs … 943.38 µs) 517.83 µs 938.01 µs 943.38 µs
verifyEvent 438.35 µs/iter 2,281.3 (404.12 µs … 680.78 µs) 430.05 µs 657.13 µs 680.78 µs
initNostrWasm 4.34 ms/iter 230.5 (3.71 ms … 6.68 ms) 4.82 ms 6.46 ms 6.68 ms
generateSecretKey 6.95 µs/iter 143,843.5 (4.36 µs … 15.51 µs) 8.09 µs 14.37 µs 15.51 µs
getPublicKey 269.97 µs/iter 3,704.1 (249.15 µs … 477.06 µs) 258.67 µs 471.21 µs 477.06 µs
finalizeEvent 550.54 µs/iter 1,816.4 (505.98 µs … 991.73 µs) 528.5 µs 963.13 µs 991.73 µs
verifyEvent 445.97 µs/iter 2,242.3 (403.17 µs … 747.47 µs) 438.43 µs 733.18 µs 747.47 µs
file:///home/runner/work/nostr-library-benchmarks/nostr-library-benchmarks/rust-nostr.bench.ts
benchmark time (avg) iter/s (min … max) p75 p99 p995
------------------------------------------------------------------- -----------------------------
loadWasmAsync 164 ns/iter 6,097,561.0 (130 ns … 2.45 ms) 151 ns 351 ns 491 ns
generate 284.06 µs/iter 3,520.3 (275.99 µs … 874.38 µs) 279.17 µs 531.02 µs 551.49 µs
toEvent 171.4 µs/iter 5,834.2 (159.82 µs … 692.12 µs) 168.66 µs 336.07 µs 350.83 µs
verify 306.11 µs/iter 3,266.8 (277.64 µs … 704.53 µs) 297.59 µs 552.23 µs 590.85 µs
benchmark time (avg) iter/s (min … max) p75 p99 p995
-------------------------------------------------------------------------- -----------------------------
loadWasmSync 81 ns/iter 12,345,679.0 (69 ns … 348.82 µs) 80 ns 100 ns 110 ns
loadWasmAsync 147.82 ns/iter 6,765,030.5 (131.05 ns … 449.62 ns) 139.94 ns 424.75 ns 437.21 ns
generate 279.87 µs/iter 3,573.1 (275.96 µs … 857.11 µs) 278.62 µs 308.26 µs 326.1 µs
toEvent 168.57 µs/iter 5,932.1 (160.23 µs … 686.08 µs) 168.53 µs 245.11 µs 302.42 µs
verify 296.11 µs/iter 3,377.1 (272.72 µs … 636.44 µs) 297.44 µs 351.72 µs 364.9 µs
verify with fromJson 368.76 µs/iter 2,711.8 (344.42 µs … 676.96 µs) 365.1 µs 646.1 µs 676.96 µs
file:///home/runner/work/nostr-library-benchmarks/nostr-library-benchmarks/rx-nostr-crypto.bench.ts
benchmark time (avg) iter/s (min … max) p75 p99 p995
------------------------------------------------------------------------------- -----------------------------
getPublicKey 217.01 µs/iter 4,608.0 (194.3 µs … 944.92 µs) 207.19 µs 449.06 µs 478.66 µs
getEventHash 10.01 µs/iter 99,920.1 (6.66 µs … 102.91 µs) 10.62 µs 25.66 µs 32.71 µs
getSignature 1.93 ms/iter 517.6 (1.77 ms … 3.52 ms) 1.95 ms 3.23 ms 3.32 ms
seckeySigner 204.63 µs/iter 4,886.7 (189.38 µs … 539.35 µs) 201.66 µs 316.84 µs 374.39 µs
seckeySigner.getPublicKey 594 ns/iter 1,683,501.7 (331 ns … 7.69 µs) 621 ns 2.29 µs 2.44 µs
seckeySigner.signEvent 1.9 ms/iter 525.8 (1.77 ms … 2.56 ms) 1.92 ms 2.41 ms 2.43 ms
verify 1.46 ms/iter 685.2 (1.36 ms … 1.63 ms) 1.48 ms 1.62 ms 1.63 ms
getPublicKey 212.72 µs/iter 4,701.1 (193.31 µs … 687.51 µs) 205.29 µs 414.55 µs 436.44 µs
getEventHash 9.45 µs/iter 105,786.5 (6.5 µs … 63.56 µs) 10.22 µs 22.74 µs 25.47 µs
getSignature 1.93 ms/iter 518.2 (1.75 ms … 3.41 ms) 1.95 ms 2.93 ms 3.35 ms
seckeySigner 206.62 µs/iter 4,839.8 (189.22 µs … 520.19 µs) 200.9 µs 365.22 µs 380.39 µs
seckeySigner.getPublicKey 556 ns/iter 1,798,561.2 (301 ns … 3.67 µs) 581 ns 2.38 µs 2.67 µs
seckeySigner.signEvent 1.88 ms/iter 532.9 (1.75 ms … 2.28 ms) 1.9 ms 2.04 ms 2.05 ms
verify 1.46 ms/iter 685.6 (1.33 ms … 2.56 ms) 1.47 ms 2.01 ms 2.56 ms
```

### Go
Expand All @@ -91,6 +93,34 @@ PASS
ok github.com/SnowCait/nostr-library-benchmarks 5.223s
```

### C#

```
dotnet run --configuration Release
```

```
BenchmarkDotNet v0.14.0, Ubuntu 22.04.4 LTS (Jammy Jellyfish)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 8.0.401
[Host] : .NET 8.0.8 (8.0.824.36612), X64 RyuJIT AVX2
DefaultJob : .NET 8.0.8 (8.0.824.36612), X64 RyuJIT AVX2
| Method | Mean | Error | StdDev |
|----------------- |-----------:|----------:|----------:|
| GenerateNew | 6.056 us | 0.0345 us | 0.0306 us |
| Sign | 676.871 us | 1.5098 us | 1.4123 us |
| IsSignatureValid | 269.284 us | 0.9796 us | 0.9163 us |
| Method | Mean | Error | StdDev |
|---------------------- |-----------:|----------:|----------:|
| Create | 3.258 us | 0.0221 us | 0.0196 us |
| ComputeIdAndSignAsync | 632.257 us | 1.3908 us | 1.3009 us |
| Verify | 268.171 us | 0.6488 us | 0.6069 us |
```

## Contribution

Welcome pull requests to add libraries or functions.

0 comments on commit 43a1b0d

Please sign in to comment.