summaryrefslogtreecommitdiff
path: root/benchmark
diff options
context:
space:
mode:
authorJean Boussier <jean.boussier@gmail.com>2021-01-25 10:58:02 +0100
committerAaron Patterson <aaron.patterson@gmail.com>2021-03-10 13:44:07 -0800
commit1041bff3b226fc0ea5235c1f3c71d7dcedbf1acc (patch)
tree6f0a59e7ea648ba1b62dacdba0f3a622a86c5f55 /benchmark
parent2de7fbcdbb90b2431e03b4c457e05f1aa2d2dd64 (diff)
Add a benchmark for RubyVM::InstructionSequence.load_from_binary
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/4119
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/iseq_load_from_binary.yml25
1 files changed, 25 insertions, 0 deletions
diff --git a/benchmark/iseq_load_from_binary.yml b/benchmark/iseq_load_from_binary.yml
new file mode 100644
index 0000000000..7e9d73bdd4
--- /dev/null
+++ b/benchmark/iseq_load_from_binary.yml
@@ -0,0 +1,25 @@
+prelude: |
+ symbol = RubyVM::InstructionSequence.compile(":foo; :bar; :baz; :egg; :spam").to_binary
+
+ define_method = RubyVM::InstructionSequence.compile(%{
+ def foo; end
+ def bar; end
+ def baz; end
+ def egg; end
+ def spam; end
+ }).to_binary
+
+ all = RubyVM::InstructionSequence.compile(%{
+ module Foo; def foo; :foo; end; end
+ module Bar; def bar; :bar; end; end
+ module Baz; def baz; :baz; end; end
+ class Egg; def egg; :egg; end; end
+ class Spaml; def spam; :spam; end; end
+ }).to_binary
+
+benchmark:
+ symbol: RubyVM::InstructionSequence.load_from_binary(symbol)
+ define_method: RubyVM::InstructionSequence.load_from_binary(define_method)
+ all: RubyVM::InstructionSequence.load_from_binary(all)
+
+loop_count: 100_000