Skip to content

Commit fa1349c

Browse files
committed
Updated benchmark with comparison
1 parent 37efc2e commit fa1349c

File tree

2 files changed

+26
-17
lines changed

2 files changed

+26
-17
lines changed

README.md

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -40,28 +40,35 @@ has the best tradeoff of API vs performance.
4040

4141
## Results
4242

43-
44-
4543
Ordered by fastest to slowest by iterations per second, descending.
4644

4745
```
4846
Warming up --------------------------------------
49-
c class 223175 i/100ms
50-
ruby method 211673 i/100ms
51-
rust ruru class 198891 i/100ms
52-
rust rutie class 191695 i/100ms
53-
rust ffi class 163458 i/100ms
54-
rust helix instance 120611 i/100ms
55-
rust helix class 114611 i/100ms
47+
c class 256870 i/100ms
48+
ruby method 242356 i/100ms
49+
rust rutie class 222419 i/100ms
50+
rust ruru class 219317 i/100ms
51+
rust ffi class 185809 i/100ms
52+
rust helix instance 134728 i/100ms
53+
rust helix class 128296 i/100ms
5654
Calculating -------------------------------------
57-
iterations per second total iterations elapsed
58-
c class 5483016.5 (±6.0%) i/s - 27491172 in 5.032074s
59-
ruby method 4966573.4 (±6.8%) i/s - 24824438 in 5.022462s
60-
rust ruru class 4275527.6 (±6.2%) i/s - 21383522 in 5.021156s
61-
rust rutie class 4051435.0 (±6.7%) i/s - 20319670 in 5.039406s
62-
rust ffi class 3082134.8 (±8.1%) i/s - 15348010 in 5.019943s
63-
rust helix instance 1875397.8 (±6.1%) i/s - 9429030 in 5.046921s
64-
rust helix class 1852779.7 (±5.9%) i/s - 9246236 in 5.008588s
55+
iterations per second total iters elapsed
56+
c class 6372371.1 (±1.8%) i/s - 32108750 in 5.040398s
57+
ruby method 5539582.3 (±4.3%) i/s - 27870940 in 5.041241s
58+
rust rutie class 4657473.6 (±3.7%) i/s - 23353995 in 5.022412s
59+
rust ruru class 4598947.6 (±2.9%) i/s - 23028285 in 5.012100s
60+
rust ffi class 3402816.9 (±2.0%) i/s - 17094428 in 5.025874s
61+
rust helix instance 1956356.3 (±2.5%) i/s - 9835144 in 5.030403s
62+
rust helix class 1898906.4 (±1.8%) i/s - 9493904 in 5.001337s
63+
64+
Comparison:
65+
c class: 6372371.1 i/s
66+
ruby method: 5539582.3 i/s - 1.15x slower
67+
rust rutie class: 4657473.6 i/s - 1.37x slower
68+
rust ruru class: 4598947.6 i/s - 1.39x slower
69+
rust ffi class: 3402816.9 i/s - 1.87x slower
70+
rust helix instance: 1956356.3 i/s - 3.26x slower
71+
rust helix class: 1898906.4 i/s - 3.36x slower
6572
```
6673

6774
## Running the Benchmark Yourself

benchmark.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,6 @@ def cash_flow(cash_in, cash_out, reinvest_rate, term, year)
6767
# ====================================
6868
require 'cash_flow_c'
6969
x.report("c class") { CCalculations.cash_flow(10000, 800, 50, 30, 5) }
70+
71+
x.compare!
7072
end

0 commit comments

Comments
 (0)