Skip to content

Commit b5b07f8

Browse files
authored
Update lobsters benchmark to Rails 8.0 (#360)
Fix: #358 Before: ``` inline_code_size: 6,752,176 outlined_code_size: 2,067,600 code_region_size: 17,268,736 yjit_alloc_size: 25,934,245 yjit_compile_time: 989.69ms RSS: 393.7MiB MAXRSS: 393.9MiB Average of last 15, non-warmup iters: 299ms Total time spent benchmarking: 27s interp: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [arm64-darwin23] yjit: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +YJIT +PRISM [arm64-darwin23] -------- ----------- ---------- --------- ---------- ------------ ----------- bench interp (ms) stddev (%) yjit (ms) stddev (%) yjit 1st itr interp/yjit lobsters 463.9 1.3 299.8 2.6 0.563 1.547 -------- ----------- ---------- --------- ---------- ------------ ----------- ``` After: ``` inline_code_size: 6,808,680 outlined_code_size: 2,178,968 code_region_size: 17,448,960 yjit_alloc_size: 26,006,453 yjit_compile_time: 978.48ms RSS: 380.1MiB MAXRSS: 380.3MiB Average of last 16, non-warmup iters: 296ms Total time spent benchmarking: 27s interp: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [arm64-darwin23] yjit: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +YJIT +PRISM [arm64-darwin23] -------- ----------- ---------- --------- ---------- ------------ ----------- bench interp (ms) stddev (%) yjit (ms) stddev (%) yjit 1st itr interp/yjit lobsters 463.1 1.8 296.3 2.2 0.596 1.563 -------- ----------- ---------- --------- ---------- ------------ ----------- ```
1 parent 2edf4cf commit b5b07f8

File tree

4 files changed

+76
-71
lines changed

4 files changed

+76
-71
lines changed

benchmarks/lobsters/Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ source "https://rubygems.org"
66
actiontext activejob activemodel activerecord
77
activestorage activesupport railties
88
].each do |rails_gem|
9-
gem rails_gem, "~> 7.2"
9+
gem rails_gem, "~> 8.0"
1010
end
1111

1212
gem "sqlite3"

benchmarks/lobsters/Gemfile.lock

Lines changed: 74 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -2,64 +2,63 @@ GEM
22
remote: https://rubygems.org/
33
specs:
44
Ascii85 (1.1.0)
5-
actionmailbox (7.2.2.1)
6-
actionpack (= 7.2.2.1)
7-
activejob (= 7.2.2.1)
8-
activerecord (= 7.2.2.1)
9-
activestorage (= 7.2.2.1)
10-
activesupport (= 7.2.2.1)
5+
actionmailbox (8.0.1)
6+
actionpack (= 8.0.1)
7+
activejob (= 8.0.1)
8+
activerecord (= 8.0.1)
9+
activestorage (= 8.0.1)
10+
activesupport (= 8.0.1)
1111
mail (>= 2.8.0)
12-
actionmailer (7.2.2.1)
13-
actionpack (= 7.2.2.1)
14-
actionview (= 7.2.2.1)
15-
activejob (= 7.2.2.1)
16-
activesupport (= 7.2.2.1)
12+
actionmailer (8.0.1)
13+
actionpack (= 8.0.1)
14+
actionview (= 8.0.1)
15+
activejob (= 8.0.1)
16+
activesupport (= 8.0.1)
1717
mail (>= 2.8.0)
1818
rails-dom-testing (~> 2.2)
19-
actionpack (7.2.2.1)
20-
actionview (= 7.2.2.1)
21-
activesupport (= 7.2.2.1)
19+
actionpack (8.0.1)
20+
actionview (= 8.0.1)
21+
activesupport (= 8.0.1)
2222
nokogiri (>= 1.8.5)
23-
racc
24-
rack (>= 2.2.4, < 3.2)
23+
rack (>= 2.2.4)
2524
rack-session (>= 1.0.1)
2625
rack-test (>= 0.6.3)
2726
rails-dom-testing (~> 2.2)
2827
rails-html-sanitizer (~> 1.6)
2928
useragent (~> 0.16)
3029
actionpack-page_caching (1.2.4)
3130
actionpack (>= 4.0.0)
32-
actiontext (7.2.2.1)
33-
actionpack (= 7.2.2.1)
34-
activerecord (= 7.2.2.1)
35-
activestorage (= 7.2.2.1)
36-
activesupport (= 7.2.2.1)
31+
actiontext (8.0.1)
32+
actionpack (= 8.0.1)
33+
activerecord (= 8.0.1)
34+
activestorage (= 8.0.1)
35+
activesupport (= 8.0.1)
3736
globalid (>= 0.6.0)
3837
nokogiri (>= 1.8.5)
39-
actionview (7.2.2.1)
40-
activesupport (= 7.2.2.1)
38+
actionview (8.0.1)
39+
activesupport (= 8.0.1)
4140
builder (~> 3.1)
4241
erubi (~> 1.11)
4342
rails-dom-testing (~> 2.2)
4443
rails-html-sanitizer (~> 1.6)
45-
activejob (7.2.2.1)
46-
activesupport (= 7.2.2.1)
44+
activejob (8.0.1)
45+
activesupport (= 8.0.1)
4746
globalid (>= 0.3.6)
48-
activemodel (7.2.2.1)
49-
activesupport (= 7.2.2.1)
50-
activerecord (7.2.2.1)
51-
activemodel (= 7.2.2.1)
52-
activesupport (= 7.2.2.1)
47+
activemodel (8.0.1)
48+
activesupport (= 8.0.1)
49+
activerecord (8.0.1)
50+
activemodel (= 8.0.1)
51+
activesupport (= 8.0.1)
5352
timeout (>= 0.4.0)
5453
activerecord-typedstore (1.6.0)
5554
activerecord (>= 6.1)
56-
activestorage (7.2.2.1)
57-
actionpack (= 7.2.2.1)
58-
activejob (= 7.2.2.1)
59-
activerecord (= 7.2.2.1)
60-
activesupport (= 7.2.2.1)
55+
activestorage (8.0.1)
56+
actionpack (= 8.0.1)
57+
activejob (= 8.0.1)
58+
activerecord (= 8.0.1)
59+
activesupport (= 8.0.1)
6160
marcel (~> 1.0)
62-
activesupport (7.2.2.1)
61+
activesupport (8.0.1)
6362
base64
6463
benchmark (>= 0.3)
6564
bigdecimal
@@ -71,14 +70,15 @@ GEM
7170
minitest (>= 5.1)
7271
securerandom (>= 0.3)
7372
tzinfo (~> 2.0, >= 2.0.5)
73+
uri (>= 0.13.1)
7474
addressable (2.8.6)
7575
public_suffix (>= 2.0.2, < 6.0)
7676
afm (0.2.2)
7777
ast (2.4.2)
7878
base64 (0.2.0)
7979
bcrypt (3.1.20)
8080
benchmark (0.4.0)
81-
bigdecimal (3.1.8)
81+
bigdecimal (3.1.9)
8282
builder (3.2.4)
8383
byebug (11.1.3)
8484
capybara (3.39.2)
@@ -93,7 +93,7 @@ GEM
9393
chunky_png (1.4.0)
9494
commonmarker (0.23.10)
9595
concurrent-ruby (1.3.4)
96-
connection_pool (2.4.1)
96+
connection_pool (2.5.0)
9797
crack (0.4.5)
9898
rexml
9999
crass (1.0.6)
@@ -107,7 +107,7 @@ GEM
107107
diff-lcs (1.5.0)
108108
docile (1.4.0)
109109
drb (2.2.1)
110-
erubi (1.13.0)
110+
erubi (1.13.1)
111111
factory_bot (6.4.5)
112112
activesupport (>= 5.0.0)
113113
factory_bot_rails (6.4.3)
@@ -124,8 +124,9 @@ GEM
124124
htmlentities (4.3.4)
125125
i18n (1.14.5)
126126
concurrent-ruby (~> 1.0)
127-
io-console (0.7.2)
128-
irb (1.14.0)
127+
io-console (0.8.0)
128+
irb (1.15.1)
129+
pp (>= 0.6.0)
129130
rdoc (>= 4.0.0)
130131
reline (>= 0.4.2)
131132
jaro_winkler (1.5.6)
@@ -134,8 +135,8 @@ GEM
134135
railties (>= 4.2.0)
135136
thor (>= 0.14, < 2.0)
136137
json (2.9.1)
137-
logger (1.6.1)
138-
loofah (2.22.0)
138+
logger (1.6.5)
139+
loofah (2.24.0)
139140
crass (~> 1.0.2)
140141
nokogiri (>= 1.12.0)
141142
mail (2.8.1)
@@ -147,7 +148,7 @@ GEM
147148
matrix (0.4.2)
148149
memory_profiler (1.0.1)
149150
mini_mime (1.1.5)
150-
mini_portile2 (2.8.5)
151+
mini_portile2 (2.8.8)
151152
minitest (5.25.1)
152153
net-imap (0.4.9.1)
153154
date
@@ -178,7 +179,11 @@ GEM
178179
hashery (~> 2.0)
179180
ruby-rc4
180181
ttfunk
181-
psych (5.1.2)
182+
pp (0.6.2)
183+
prettyprint
184+
prettyprint (0.2.0)
185+
psych (5.2.3)
186+
date
182187
stringio
183188
public_suffix (5.0.4)
184189
racc (1.8.1)
@@ -191,7 +196,7 @@ GEM
191196
rack (< 3)
192197
rack-test (2.1.0)
193198
rack (>= 1.3)
194-
rackup (1.0.0)
199+
rackup (1.0.1)
195200
rack (< 3)
196201
webrick
197202
rails-dom-testing (2.2.0)
@@ -201,9 +206,9 @@ GEM
201206
rails-html-sanitizer (1.6.0)
202207
loofah (~> 2.21)
203208
nokogiri (~> 1.14)
204-
railties (7.2.2.1)
205-
actionpack (= 7.2.2.1)
206-
activesupport (= 7.2.2.1)
209+
railties (8.0.1)
210+
actionpack (= 8.0.1)
211+
activesupport (= 8.0.1)
207212
irb (~> 1.13)
208213
rackup (>= 1.0.0)
209214
rake (>= 12.2)
@@ -212,10 +217,10 @@ GEM
212217
rainbow (3.1.1)
213218
rake (13.2.1)
214219
rb-readline (0.5.5)
215-
rdoc (6.7.0)
220+
rdoc (6.12.0)
216221
psych (>= 4.0.0)
217222
regexp_parser (2.9.0)
218-
reline (0.5.10)
223+
reline (0.6.0)
219224
io-console (~> 0.5)
220225
rexml (3.4.0)
221226
rotp (6.3.0)
@@ -261,7 +266,7 @@ GEM
261266
scenic (1.7.0)
262267
activerecord (>= 4.0.0)
263268
railties (>= 4.0.0)
264-
securerandom (0.3.1)
269+
securerandom (0.4.1)
265270
simplecov (0.22.0)
266271
docile (~> 1.1)
267272
simplecov-html (~> 0.11)
@@ -280,45 +285,46 @@ GEM
280285
actionpack (>= 3.0)
281286
activesupport (>= 3.0)
282287
sprockets (>= 2.8, < 4.0)
283-
sqlite3 (1.7.1)
288+
sqlite3 (2.5.0)
284289
mini_portile2 (~> 2.8.0)
285290
stackprof (0.2.26)
286-
stringio (3.1.1)
291+
stringio (3.1.2)
287292
svg-graph (2.2.2)
288293
thor (1.3.0)
289294
timeout (0.4.1)
290295
ttfunk (1.7.0)
291296
tzinfo (2.0.6)
292297
concurrent-ruby (~> 1.0)
293298
unicode-display_width (1.8.0)
294-
useragent (0.16.10)
299+
uri (1.0.2)
300+
useragent (0.16.11)
295301
vcr (6.2.0)
296302
version_gem (1.1.3)
297303
webmock (3.19.1)
298304
addressable (>= 2.8.0)
299305
crack (>= 0.3.2)
300306
hashdiff (>= 0.4.0, < 2.0.0)
301-
webrick (1.8.1)
307+
webrick (1.9.1)
302308
xpath (3.2.0)
303309
nokogiri (~> 1.8)
304-
zeitwerk (2.6.18)
310+
zeitwerk (2.7.1)
305311

306312
PLATFORMS
307313
ruby
308314

309315
DEPENDENCIES
310-
actionmailbox (~> 7.2)
311-
actionmailer (~> 7.2)
312-
actionpack (~> 7.2)
316+
actionmailbox (~> 8.0)
317+
actionmailer (~> 8.0)
318+
actionpack (~> 8.0)
313319
actionpack-page_caching
314-
actiontext (~> 7.2)
315-
actionview (~> 7.2)
316-
activejob (~> 7.2)
317-
activemodel (~> 7.2)
318-
activerecord (~> 7.2)
320+
actiontext (~> 8.0)
321+
actionview (~> 8.0)
322+
activejob (~> 8.0)
323+
activemodel (~> 8.0)
324+
activerecord (~> 8.0)
319325
activerecord-typedstore
320-
activestorage (~> 7.2)
321-
activesupport (~> 7.2)
326+
activestorage (~> 8.0)
327+
activesupport (~> 8.0)
322328
bcrypt (~> 3.1.2)
323329
byebug
324330
capybara
@@ -338,7 +344,7 @@ DEPENDENCIES
338344
pdf-reader
339345
rack-attack
340346
rack-mini-profiler
341-
railties (~> 7.2)
347+
railties (~> 8.0)
342348
rb-readline
343349
rotp
344350
rqrcode

benchmarks/lobsters/config/application.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
module Lobsters
2222
class Application < Rails::Application
2323
# Initialize configuration defaults for originally generated Rails version.
24-
config.load_defaults 7.2
24+
config.load_defaults 8.0
2525

2626
# Please, add to the `ignore` list any other `lib` subdirectories that do
2727
# not contain `.rb` files, or that should not be reloaded or eager loaded.

benchmarks/lobsters/config/environments/production.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@
8888
# config.host_authorization = { exclude: ->(request) { request.path == "/up" } }
8989

9090
# yjit-bench configurations
91-
config.active_record.sqlite3_production_warning = false
9291
config.logger = nil
9392
config.secret_key_base = 'in general secret should not be in the git repo but this is a benchmark'
9493
# If we want to benchmark with YJIT then it has already been enabled by command line arguments.

0 commit comments

Comments
 (0)