1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

benchmark: revise ERB benchmarks using YAML syntax

to improve the accuracy of measurement by stop using block.

benchmark/app_erb.rb -> benchmark/app_erb.yml: renamed and revised
benchmark/erb_render.rb -> benchmark/erb_render.yml: ditto

benchmark/README.md: follow renames

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
k0kubun 2018-07-10 15:58:52 +00:00
parent 498487ec2a
commit 3efcb74036
5 changed files with 50 additions and 52 deletions

View file

@ -9,7 +9,7 @@ Execute `gem install benchmark_driver` and run a command like:
```bash ```bash
# Run a benchmark script with the ruby in the $PATH # Run a benchmark script with the ruby in the $PATH
benchmark-driver benchmark/erb_render.rb benchmark-driver benchmark/erb_fib.rb
# Run all benchmark scripts with multiple Ruby executables or options # Run all benchmark scripts with multiple Ruby executables or options
benchmark-driver benchmark/*.yml -e /path/to/ruby -e '/path/to/ruby --jit' benchmark-driver benchmark/*.yml -e /path/to/ruby -e '/path/to/ruby --jit'
@ -59,7 +59,7 @@ make benchmark ITEM=vm1 OPTS=--filter=block
# You can specify the benchmark by an exact filename instead of using the default argument: # You can specify the benchmark by an exact filename instead of using the default argument:
# ARGS = $$(find $(srcdir)/benchmark -maxdepth 1 -name '*$(ITEM)*.yml' -o -name '*$(ITEM)*.rb') # ARGS = $$(find $(srcdir)/benchmark -maxdepth 1 -name '*$(ITEM)*.yml' -o -name '*$(ITEM)*.rb')
make benchmark ARGS=../benchmark/erb_render.rb make benchmark ARGS=../benchmark/erb_render.yml
# You can specify any option via $OPTS # You can specify any option via $OPTS
make benchmark OPTS="--help" make benchmark OPTS="--help"

View file

@ -1,25 +0,0 @@
#
# Create many HTML strings with ERB.
#
require 'erb'
data = <<erb
<html>
<head> <%= title %> </head>
<body>
<h1> <%= title %> </h1>
<p>
<%= content %>
</p>
</body>
</html>
erb
max = 15_000
title = "hello world!"
content = "hello world!\n" * 10
max.times{
ERB.new(data).result(binding)
}

24
benchmark/app_erb.yml Normal file
View file

@ -0,0 +1,24 @@
#
# Create many HTML strings with ERB.
#
prelude: |
require 'erb'
data = <<erb
<html>
<head> <%= title %> </head>
<body>
<h1> <%= title %> </h1>
<p>
<%= content %>
</p>
</body>
</html>
erb
max = 15_000
title = "hello world!"
content = "hello world!\n" * 10
benchmark:
app_erb: ERB.new(data).result(binding)
loop_count: 15000

View file

@ -1,25 +0,0 @@
require 'erb'
data = <<erb
<html>
<head> <%= title %> </head>
<body>
<h1> <%= title %> </h1>
<p>
<%= content %>
</p>
</body>
</html>
erb
max = 1_500_000
title = "hello world!"
content = "hello world!\n" * 10
src = "def self.render(title, content); #{ERB.new(data).src}; end"
mod = Module.new
mod.instance_eval(src, "(ERB)")
max.times do
mod.render(title, content)
end

24
benchmark/erb_render.yml Normal file
View file

@ -0,0 +1,24 @@
prelude: |
require 'erb'
data = <<erb
<html>
<head> <%= title %> </head>
<body>
<h1> <%= title %> </h1>
<p>
<%= content %>
</p>
</body>
</html>
erb
title = "hello world!"
content = "hello world!\n" * 10
src = "def self.render(title, content); #{ERB.new(data).src}; end"
mod = Module.new
mod.instance_eval(src, "(ERB)")
benchmark:
erb_render: mod.render(title, content)
loop_count: 1500000