diff options
author | Jean Boussier <jean.boussier@gmail.com> | 2021-01-25 10:58:02 +0100 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2021-03-10 13:44:07 -0800 |
commit | 1041bff3b226fc0ea5235c1f3c71d7dcedbf1acc (patch) | |
tree | 6f0a59e7ea648ba1b62dacdba0f3a622a86c5f55 /benchmark | |
parent | 2de7fbcdbb90b2431e03b4c457e05f1aa2d2dd64 (diff) | |
download | ruby-1041bff3b226fc0ea5235c1f3c71d7dcedbf1acc.tar.gz |
Add a benchmark for RubyVM::InstructionSequence.load_from_binary
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/iseq_load_from_binary.yml | 25 |
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 |