-
Notifications
You must be signed in to change notification settings - Fork 221
Open
Description
Prepare
The target file is https://github.com/ruby/gem_rbs_collection/blob/main/gems/activerecord/8.0/activerecord-generated.rbs
$ cat parse.rb
require 'rbs'
require 'benchmark/ips'
sig = Pathname('../gem_rbs_collection/gems/activerecord/8.0/activerecord-generated.rbs').read
Benchmark.ips do |x|
x.report("rbs v#{RBS::VERSION} parse activerecord-generated.rbs") do
RBS::Parser.parse_signature(sig)
end
end
Runner
$ bundle exec rake templates lexer compile
$ bundle exec ruby parse.rb
Comparison
v3.9.4
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
Warming up --------------------------------------
rbs v3.9.4 parse activerecord-generated.rbs
3.000 i/100ms
Calculating -------------------------------------
rbs v3.9.4 parse activerecord-generated.rbs
34.219 (± 0.0%) i/s (29.22 ms/i) - 174.000 in 5.085551s
v4.0.0.dev4
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
Warming up --------------------------------------
rbs v4.0.0.dev.4 parse activerecord-generated.rbs
2.000 i/100ms
Calculating -------------------------------------
rbs v4.0.0.dev.4 parse activerecord-generated.rbs
30.880 (± 3.2%) i/s (32.38 ms/i) - 156.000 in 5.053877s
Rate
34.219 / 30.880
=> 1.108128238341969
I could observe a degradation in parsing performance of about 10%.
soutaro
Metadata
Metadata
Assignees
Labels
No labels