Skip to content

Instantly share code, notes, and snippets.

@nirvdrum
Last active February 15, 2024 16:22
Show Gist options
  • Save nirvdrum/ca3c91e2dca02a9dbd0ffb914640b488 to your computer and use it in GitHub Desktop.
Save nirvdrum/ca3c91e2dca02a9dbd0ffb914640b488 to your computer and use it in GitHub Desktop.
Results of running the benchmarks for the Trilogy Ruby client
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) +YJIT [x86_64-linux]
Warming up --------------------------------------
trilogy connect/close
1.112k i/100ms
mysql2 connect/close 955.000 i/100ms
Calculating -------------------------------------
trilogy connect/close
12.458k (± 7.5%) i/s - 62.272k in 5.032194s
mysql2 connect/close 9.952k (± 4.9%) i/s - 49.660k in 5.001969s
Comparison:
trilogy connect/close: 12457.9 i/s
mysql2 connect/close: 9951.7 i/s - 1.25x slower
Warming up --------------------------------------
trilogy escape 394.221k i/100ms
mysql2 escape 248.222k i/100ms
Calculating -------------------------------------
trilogy escape 6.696M (± 1.9%) i/s - 33.509M in 5.006426s
mysql2 escape 3.379M (± 1.3%) i/s - 17.127M in 5.070374s
Comparison:
trilogy escape: 6695791.0 i/s
mysql2 escape: 3378530.5 i/s - 1.98x slower
Warming up --------------------------------------
trilogy ping 6.323k i/100ms
mysql2 ping 7.807k i/100ms
Calculating -------------------------------------
trilogy ping 66.969k (± 5.1%) i/s - 335.119k in 5.017949s
mysql2 ping 85.136k (± 6.4%) i/s - 429.385k in 5.066460s
Comparison:
mysql2 ping: 85136.2 i/s
trilogy ping: 66968.9 i/s - 1.27x slower
Warming up --------------------------------------
trilogy change_db 5.551k i/100ms
mysql2 change_db 5.478k i/100ms
Calculating -------------------------------------
trilogy change_db 55.088k (± 6.2%) i/s - 277.550k in 5.059949s
mysql2 change_db 54.088k (± 7.3%) i/s - 273.900k in 5.094118s
Comparison:
trilogy change_db: 55088.2 i/s
mysql2 change_db: 54088.0 i/s - same-ish: difference falls within error
Warming up --------------------------------------
trilogy query 4.137k i/100ms
trilogy query (no-casting)
3.733k i/100ms
mysql2 query 4.100k i/100ms
mysql2 query (no-casting)
4.153k i/100ms
mysql2 query (stream)
4.056k i/100ms
mysql2 query (stream + no-casting)
3.470k i/100ms
Calculating -------------------------------------
trilogy query 47.719k (± 9.9%) i/s - 239.946k in 5.080882s
trilogy query (no-casting)
49.802k (± 6.4%) i/s - 250.111k in 5.044600s
mysql2 query 41.308k (± 5.7%) i/s - 209.100k in 5.080850s
mysql2 query (no-casting)
40.818k (± 5.5%) i/s - 203.497k in 5.001923s
mysql2 query (stream)
41.251k (± 4.3%) i/s - 206.856k in 5.024605s
mysql2 query (stream + no-casting)
40.727k (± 6.0%) i/s - 204.730k in 5.046930s
Comparison:
trilogy query (no-casting): 49801.9 i/s
trilogy query: 47719.1 i/s - same-ish: difference falls within error
mysql2 query: 41308.4 i/s - 1.21x slower
mysql2 query (stream): 41250.8 i/s - 1.21x slower
mysql2 query (no-casting): 40817.6 i/s - 1.22x slower
mysql2 query (stream + no-casting): 40726.9 i/s - 1.22x slower
Warming up --------------------------------------
trilogy affected_rows
748.013k i/100ms
mysql2 affected_rows 746.714k i/100ms
Calculating -------------------------------------
trilogy affected_rows
31.525M (± 0.4%) i/s - 157.831M in 5.006605s
mysql2 affected_rows 30.204M (± 2.0%) i/s - 151.583M in 5.020612s
Comparison:
trilogy affected_rows: 31525139.9 i/s
mysql2 affected_rows: 30204210.0 i/s - 1.04x slower
Warming up --------------------------------------
trilogy warning_count
751.674k i/100ms
mysql2 warning_count 737.099k i/100ms
Calculating -------------------------------------
trilogy warning_count
31.140M (± 2.1%) i/s - 156.348M in 5.023326s
mysql2 warning_count 30.593M (± 1.1%) i/s - 153.317M in 5.012288s
Comparison:
trilogy warning_count: 31140393.8 i/s
mysql2 warning_count: 30592640.9 i/s - same-ish: difference falls within error
Warming up --------------------------------------
trilogy last_insert_id
759.090k i/100ms
mysql2 last_insert_id
741.371k i/100ms
Calculating -------------------------------------
trilogy last_insert_id
30.812M (± 1.5%) i/s - 154.095M in 5.002124s
mysql2 last_insert_id
28.750M (± 2.4%) i/s - 143.826M in 5.005956s
Comparison:
trilogy last_insert_id: 30812499.4 i/s
mysql2 last_insert_id: 28750014.1 i/s - 1.07x slower
Run options: --seed 53315
# Running:
Finished in 0.000468s, 0.0000 runs/s, 0.0000 assertions/s.
0 runs, 0 assertions, 0 failures, 0 errors, 0 skips
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-linux]
Warming up --------------------------------------
trilogy connect/close
1.094k i/100ms
mysql2 connect/close 874.000 i/100ms
Calculating -------------------------------------
trilogy connect/close
11.100k (±10.2%) i/s - 55.794k in 5.080517s
mysql2 connect/close 8.921k (±13.0%) i/s - 44.574k in 5.085212s
Comparison:
trilogy connect/close: 11100.2 i/s
mysql2 connect/close: 8921.4 i/s - same-ish: difference falls within error
Warming up --------------------------------------
trilogy escape 329.488k i/100ms
mysql2 escape 218.711k i/100ms
Calculating -------------------------------------
trilogy escape 5.894M (± 1.1%) i/s - 29.654M in 5.031652s
mysql2 escape 3.140M (± 1.2%) i/s - 15.747M in 5.015568s
Comparison:
trilogy escape: 5894202.8 i/s
mysql2 escape: 3140100.3 i/s - 1.88x slower
Warming up --------------------------------------
trilogy ping 6.543k i/100ms
mysql2 ping 8.166k i/100ms
Calculating -------------------------------------
trilogy ping 67.545k (± 2.3%) i/s - 340.236k in 5.040037s
mysql2 ping 83.347k (± 5.1%) i/s - 416.466k in 5.011301s
Comparison:
mysql2 ping: 83346.6 i/s
trilogy ping: 67545.2 i/s - 1.23x slower
Warming up --------------------------------------
trilogy change_db 4.189k i/100ms
mysql2 change_db 4.458k i/100ms
Calculating -------------------------------------
trilogy change_db 56.052k (± 2.7%) i/s - 280.663k in 5.011103s
mysql2 change_db 54.877k (± 5.0%) i/s - 276.396k in 5.050184s
Comparison:
trilogy change_db: 56052.2 i/s
mysql2 change_db: 54876.6 i/s - same-ish: difference falls within error
Warming up --------------------------------------
trilogy query 4.878k i/100ms
trilogy query (no-casting)
3.355k i/100ms
mysql2 query 2.535k i/100ms
mysql2 query (no-casting)
3.398k i/100ms
mysql2 query (stream)
4.184k i/100ms
mysql2 query (stream + no-casting)
2.582k i/100ms
Calculating -------------------------------------
trilogy query 32.718k (±18.5%) i/s - 160.974k in 5.072078s
trilogy query (no-casting)
42.264k (±19.4%) i/s - 204.655k in 5.067920s
mysql2 query 41.692k (± 9.1%) i/s - 207.870k in 5.046440s
mysql2 query (no-casting)
42.526k (± 2.8%) i/s - 214.074k in 5.038502s
mysql2 query (stream)
40.910k (± 6.1%) i/s - 205.016k in 5.032802s
mysql2 query (stream + no-casting)
40.574k (± 6.8%) i/s - 203.978k in 5.054922s
Comparison:
mysql2 query (no-casting): 42525.8 i/s
trilogy query (no-casting): 42264.3 i/s - same-ish: difference falls within error
mysql2 query: 41691.9 i/s - same-ish: difference falls within error
mysql2 query (stream): 40909.7 i/s - same-ish: difference falls within error
mysql2 query (stream + no-casting): 40573.6 i/s - same-ish: difference falls within error
trilogy query: 32718.0 i/s - 1.30x slower
Warming up --------------------------------------
trilogy affected_rows
569.768k i/100ms
mysql2 affected_rows 567.452k i/100ms
Calculating -------------------------------------
trilogy affected_rows
20.901M (± 1.5%) i/s - 104.837M in 5.017127s
mysql2 affected_rows 20.092M (± 1.0%) i/s - 101.006M in 5.027613s
Comparison:
trilogy affected_rows: 20901008.8 i/s
mysql2 affected_rows: 20092367.7 i/s - 1.04x slower
Warming up --------------------------------------
trilogy warning_count
566.848k i/100ms
mysql2 warning_count 570.266k i/100ms
Calculating -------------------------------------
trilogy warning_count
21.019M (± 0.7%) i/s - 105.434M in 5.016471s
mysql2 warning_count 19.974M (± 1.4%) i/s - 100.367M in 5.025809s
Comparison:
trilogy warning_count: 21018650.9 i/s
mysql2 warning_count: 19973979.1 i/s - 1.05x slower
Warming up --------------------------------------
trilogy last_insert_id
555.468k i/100ms
mysql2 last_insert_id
560.943k i/100ms
Calculating -------------------------------------
trilogy last_insert_id
20.978M (± 0.7%) i/s - 104.983M in 5.004692s
mysql2 last_insert_id
20.182M (± 1.7%) i/s - 100.970M in 5.004691s
Comparison:
trilogy last_insert_id: 20978095.8 i/s
mysql2 last_insert_id: 20181629.1 i/s - 1.04x slower
Run options: --seed 15151
# Running:
Finished in 0.000454s, 0.0000 runs/s, 0.0000 assertions/s.
0 runs, 0 assertions, 0 failures, 0 errors, 0 skips
truffleruby 24.0.0-dev-8e1f1e93, like ruby 3.2.2, Oracle GraalVM Native [x86_64-linux]
Warming up --------------------------------------
trilogy connect/close
459.000 i/100ms
mysql2 connect/close 518.000 i/100ms
Calculating -------------------------------------
trilogy connect/close
7.700k (±12.0%) i/s - 38.097k in 5.043246s
mysql2 connect/close 7.827k (± 9.3%) i/s - 38.850k in 5.052522s
Comparison:
mysql2 connect/close: 7827.4 i/s
trilogy connect/close: 7699.6 i/s - same-ish: difference falls within error
Warming up --------------------------------------
trilogy escape 25.538k i/100ms
mysql2 escape 18.194k i/100ms
Calculating -------------------------------------
trilogy escape 290.536k (±18.5%) i/s - 1.354M in 5.063119s
mysql2 escape 197.708k (±16.3%) i/s - 946.088k in 5.040016s
Comparison:
trilogy escape: 290536.0 i/s
mysql2 escape: 197707.9 i/s - 1.47x slower
Warming up --------------------------------------
trilogy ping 4.254k i/100ms
mysql2 ping 5.876k i/100ms
Calculating -------------------------------------
trilogy ping 46.928k (±18.6%) i/s - 229.716k in 5.077305s
mysql2 ping 62.718k (±19.3%) i/s - 299.676k in 5.068249s
Comparison:
mysql2 ping: 62718.5 i/s
trilogy ping: 46927.7 i/s - same-ish: difference falls within error
Warming up --------------------------------------
trilogy change_db 3.570k i/100ms
mysql2 change_db 4.238k i/100ms
Calculating -------------------------------------
trilogy change_db 35.863k (±24.3%) i/s - 171.360k in 5.096560s
mysql2 change_db 40.973k (±16.8%) i/s - 199.186k in 5.008252s
Comparison:
mysql2 change_db: 40972.9 i/s
trilogy change_db: 35862.8 i/s - same-ish: difference falls within error
Warming up --------------------------------------
trilogy query 2.340k i/100ms
trilogy query (no-casting)
2.090k i/100ms
mysql2 query 913.000 i/100ms
mysql2 query (no-casting)
1.018k i/100ms
mysql2 query (stream)
968.000 i/100ms
mysql2 query (stream + no-casting)
1.074k i/100ms
Calculating -------------------------------------
trilogy query 23.609k (±15.2%) i/s - 117.000k in 5.089543s
trilogy query (no-casting)
23.957k (±18.9%) i/s - 117.040k in 5.103842s
mysql2 query 13.197k (±16.3%) i/s - 62.997k in 5.044779s
mysql2 query (no-casting)
13.099k (±16.3%) i/s - 63.116k in 5.065954s
mysql2 query (stream)
12.347k (±18.0%) i/s - 59.048k in 5.057062s
mysql2 query (stream + no-casting)
12.364k (±18.3%) i/s - 59.070k in 5.019310s
Comparison:
trilogy query (no-casting): 23956.6 i/s
trilogy query: 23609.3 i/s - same-ish: difference falls within error
mysql2 query: 13197.4 i/s - 1.82x slower
mysql2 query (no-casting): 13099.0 i/s - 1.83x slower
mysql2 query (stream + no-casting): 12364.2 i/s - 1.94x slower
mysql2 query (stream): 12347.4 i/s - 1.94x slower
Warming up --------------------------------------
trilogy affected_rows
51.100k i/100ms
mysql2 affected_rows 47.693k i/100ms
Calculating -------------------------------------
trilogy affected_rows
715.610k (±24.8%) i/s - 3.219M in 5.300604s
mysql2 affected_rows 637.286k (±22.7%) i/s - 2.719M in 5.038362s
Comparison:
trilogy affected_rows: 715610.2 i/s
mysql2 affected_rows: 637285.6 i/s - same-ish: difference falls within error
Warming up --------------------------------------
trilogy warning_count
55.753k i/100ms
mysql2 warning_count 50.078k i/100ms
Calculating -------------------------------------
trilogy warning_count
702.474k (±23.5%) i/s - 3.289M in 5.353917s
mysql2 warning_count 628.043k (±23.9%) i/s - 2.804M in 5.039161s
Comparison:
trilogy warning_count: 702474.4 i/s
mysql2 warning_count: 628042.9 i/s - same-ish: difference falls within error
Warming up --------------------------------------
trilogy last_insert_id
58.743k i/100ms
mysql2 last_insert_id
58.462k i/100ms
Calculating -------------------------------------
trilogy last_insert_id
739.718k (±20.3%) i/s - 3.290M in 5.014003s
mysql2 last_insert_id
628.185k (±22.4%) i/s - 2.806M in 5.077712s
Comparison:
trilogy last_insert_id: 739717.7 i/s
mysql2 last_insert_id: 628184.6 i/s - same-ish: difference falls within error
Run options: --seed 9286
# Running:
Finished in 0.003036s, 0.0000 runs/s, 0.0000 assertions/s.
0 runs, 0 assertions, 0 failures, 0 errors, 0 skips
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment