From 1041bff3b226fc0ea5235c1f3c71d7dcedbf1acc Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Mon, 25 Jan 2021 10:58:02 +0100 Subject: [PATCH] Add a benchmark for RubyVM::InstructionSequence.load_from_binary --- benchmark/iseq_load_from_binary.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 benchmark/iseq_load_from_binary.yml 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