blob: fe90cb042198f9d6272595b6c6d2e2304635a062 [file] [log] [blame] [view] [edit]
# Equatable Benchmarks
Benchmarks used to measure the performance of equality comparisons using `package:equatable`.
## Quick Start
1. Install dependencies
`dart pub get`
1. Run the benchmarks
`dart run main.dart`
## Results
**JIT**
```
EmptyEquatable
total runs: 2 729 471
total time: 2.0000 s
average run: 0 μs
runs/second: Infinity
units: 100
units/second: Infinity
time per unit: 0.0000 μs
PrimitiveEquatable
total runs: 669 972
total time: 2.0000 s
average run: 2 μs
runs/second: 500 000
units: 100
units/second: 50 000 000
time per unit: 0.0200 μs
CollectionEquatable (static, small)
total runs: 144 932
total time: 2.0000 s
average run: 13 μs
runs/second: 76 923
units: 100
units/second: 7 692 308
time per unit: 0.1300 μs
CollectionEquatable (static, medium)
total runs: 84 533
total time: 2.0000 s
average run: 23 μs
runs/second: 43 478
units: 100
units/second: 4 347 826
time per unit: 0.2300 μs
CollectionEquatable (static, large)
total runs: 16 457
total time: 2.0001 s
average run: 121 μs
runs/second: 8 264.5
units: 100
units/second: 826 446
time per unit: 1.2100 μs
CollectionEquatable (dynamic, small)
total runs: 388 236
total time: 2.0000 s
average run: 5 μs
runs/second: 200 000
units: 100
units/second: 20 000 000
time per unit: 0.0500 μs
CollectionEquatable (dynamic, medium)
total runs: 382 155
total time: 2.0000 s
average run: 5 μs
runs/second: 200 000
units: 100
units/second: 20 000 000
time per unit: 0.0500 μs
CollectionEquatable (dynamic, large)
total runs: 390 713
total time: 2.0000 s
average run: 5 μs
runs/second: 200 000
units: 100
units/second: 20 000 000
time per unit: 0.0500 μs
```
**AOT**
```
EmptyEquatable
total runs: 1 615 534
total time: 2.0000 s
average run: 1 μs
runs/second: 1 000 000
units: 100
units/second: 100 000 000
time per unit: 0.0100 μs
PrimitiveEquatable
total runs: 928 013
total time: 2.0000 s
average run: 2 μs
runs/second: 500 000
units: 100
units/second: 50 000 000
time per unit: 0.0200 μs
CollectionEquatable (static, small)
total runs: 128 224
total time: 2.0000 s
average run: 15 μs
runs/second: 66 667
units: 100
units/second: 6 666 667
time per unit: 0.1500 μs
CollectionEquatable (static, medium)
total runs: 104 624
total time: 2.0000 s
average run: 19 μs
runs/second: 52 632
units: 100
units/second: 5 263 158
time per unit: 0.1900 μs
CollectionEquatable (static, large)
total runs: 33 653
total time: 2.0000 s
average run: 59 μs
runs/second: 16 949
units: 100
units/second: 1 694 915
time per unit: 0.5900 μs
CollectionEquatable (dynamic, small)
total runs: 483 177
total time: 2.0000 s
average run: 4 μs
runs/second: 250 000
units: 100
units/second: 25 000 000
time per unit: 0.0400 μs
CollectionEquatable (dynamic, medium)
total runs: 488 550
total time: 2.0000 s
average run: 4 μs
runs/second: 250 000
units: 100
units/second: 25 000 000
time per unit: 0.0400 μs
CollectionEquatable (dynamic, large)
total runs: 494 041
total time: 2.0000 s
average run: 4 μs
runs/second: 250 000
units: 100
units/second: 25 000 000
time per unit: 0.0400 μs
```
_Last Updated: November 20, 2024 using `29e6c77a2e6b25e35cce66276bc2afeab1c805bd`_
_MacBook Pro (M1 Pro, 16GB RAM)_
Dart SDK version: Dart SDK version: 3.5.4 (stable) (Wed Oct 16 16:18:51 2024 +0000) on "macos_arm64"