Skip to content

Commit 4b56eef

Browse files
committed
add benchmark script
1 parent 830fe7f commit 4b56eef

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ group :memcheck do
1313
end
1414
gem "rbs", platform: %i[mri mswin mingw x64_mingw]
1515
gem "parser"
16+
gem "benchmark-ips"

Gemfile.lock

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ GEM
88
specs:
99
abbrev (0.1.2)
1010
ast (2.4.2)
11+
benchmark-ips (2.13.0)
1112
ffi (1.16.3)
1213
mini_portile2 (2.8.5)
1314
nokogiri (1.16.0)
@@ -35,6 +36,7 @@ PLATFORMS
3536
universal-java-20
3637

3738
DEPENDENCIES
39+
benchmark-ips
3840
ffi
3941
parser
4042
prism!

bin/bench

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/usr/bin/env ruby
2+
# frozen_string_literal: true
3+
4+
require "bundler/setup"
5+
require "benchmark/ips"
6+
require "parser/current"
7+
require "prism"
8+
9+
10+
filepath = ARGV.fetch(0) { File.expand_path("../lib/prism/translation/parser/compiler.rb", __dir__) }
11+
12+
Benchmark.ips do |x|
13+
x.report("Parser::CurrentRuby") { Parser::CurrentRuby.parse_file(filepath) }
14+
x.report("Parser::Prism") { Prism.parse_file(filepath) }
15+
x.report("Prism::Translation::Parser") { Prism::Translation::Parser.parse_file(filepath) }
16+
x.compare!
17+
end

0 commit comments

Comments
 (0)