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:
parent
498487ec2a
commit
3efcb74036
5 changed files with 50 additions and 52 deletions
|
@ -9,7 +9,7 @@ Execute `gem install benchmark_driver` and run a command like:
|
|||
|
||||
```bash
|
||||
# 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
|
||||
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:
|
||||
# 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
|
||||
make benchmark OPTS="--help"
|
||||
|
|
|
@ -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
24
benchmark/app_erb.yml
Normal 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
|
|
@ -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
24
benchmark/erb_render.yml
Normal 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
|
Loading…
Reference in a new issue