Skip to content

@stepheneb /bench.rb
Created

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
require 'rubygems'
require 'benchmark'
require 'bluecloth'
# results on Mac OS X 10.5.6, Ciore Duo 2 at 2.5 GHz
#
# also see graph of results:
#
# http://img.skitch.com/20090408-fp1sxu3fu7dm4296kqrmskgaqt.png
#
# [bluecloth-git (master)]$ ruby bench.rb
#
# Ruby version: MRI 1.8.6 (2008-03-03 rev 114), platform: universal-darwin9.0
#
# Benchmark Ruby BlueCloth processing of: http://daringfireball.net/projects/markdown/syntax.text
# file length = 11075
#
# running benchmark once.
#
# Rehearsal ------------------------------------------------------------------------------------------
# process README.md concatenated 1 times with BlueCloth 0.140000 0.010000 0.150000 ( 0.159116)
# process README.md concatenated 2 times with BlueCloth 0.330000 0.040000 0.370000 ( 0.398529)
# process README.md concatenated 4 times with BlueCloth 0.820000 0.140000 0.960000 ( 0.976002)
# process README.md concatenated 8 times with BlueCloth 2.130000 0.510000 2.640000 ( 2.683848)
# process README.md concatenated 16 times with BlueCloth 6.520000 2.090000 8.610000 ( 8.763092)
# process README.md concatenated 32 times with BlueCloth 22.370000 8.570000 30.940000 ( 31.517693)
# -------------------------------------------------------------------------------- total: 43.670000sec
#
# user system total real
# process README.md concatenated 1 times with BlueCloth 0.090000 0.010000 0.100000 ( 0.105123)
# process README.md concatenated 2 times with BlueCloth 0.220000 0.030000 0.250000 ( 0.250649)
# process README.md concatenated 4 times with BlueCloth 0.590000 0.100000 0.690000 ( 0.696880)
# process README.md concatenated 8 times with BlueCloth 1.810000 0.460000 2.270000 ( 2.298147)
# process README.md concatenated 16 times with BlueCloth 6.150000 2.110000 8.260000 ( 8.352241)
# process README.md concatenated 32 times with BlueCloth 22.210000 8.970000 31.180000 ( 31.484872)
#
# [bluecloth-git (master)]$ jruby bench.rb 2
#
# Ruby version: JRuby 1.8.6 (2009-04-08 rev 287) [i386-jruby1.3.0], platform: Java, version 1.6.0_07
#
# Benchmark Ruby BlueCloth processing of: http://daringfireball.net/projects/markdown/syntax.text
# file length = 11075
#
# running benchmark 2 times.
#
# Rehearsal ------------------------------------------------------------------------------------------
# process README.md concatenated 1 times with BlueCloth 0.535000 0.000000 0.535000 ( 0.535000)
# process README.md concatenated 2 times with BlueCloth 0.557000 0.000000 0.557000 ( 0.557000)
# process README.md concatenated 4 times with BlueCloth 0.672000 0.000000 0.672000 ( 0.671000)
# process README.md concatenated 8 times with BlueCloth 1.380000 0.000000 1.380000 ( 1.380000)
# process README.md concatenated 16 times with BlueCloth 4.277000 0.000000 4.277000 ( 4.277000)
# process README.md concatenated 32 times with BlueCloth 14.257000 0.000000 14.257000 ( 14.257000)
# -------------------------------------------------------------------------------- total: 21.678000sec
#
# user system total real
# process README.md concatenated 1 times with BlueCloth 0.068000 0.000000 0.068000 ( 0.068000)
# process README.md concatenated 2 times with BlueCloth 0.156000 0.000000 0.156000 ( 0.156000)
# process README.md concatenated 4 times with BlueCloth 0.404000 0.000000 0.404000 ( 0.404000)
# process README.md concatenated 8 times with BlueCloth 1.166000 0.000000 1.166000 ( 1.166000)
# process README.md concatenated 16 times with BlueCloth 3.984000 0.000000 3.984000 ( 3.984000)
# process README.md concatenated 32 times with BlueCloth 14.119000 0.000000 14.119000 ( 14.118000)
if RUBY_PLATFORM =~ /java/
include Java
@ruby_info = "Ruby version: JRuby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE} rev #{RUBY_PATCHLEVEL}) [i386-jruby#{JRUBY_VERSION}]"
@ruby_info << ", platform: Java, version #{java.lang.System.getProperty('java.version')}"
else
@ruby_info = "Ruby version: MRI #{RUBY_VERSION} (#{RUBY_RELEASE_DATE} rev #{RUBY_PATCHLEVEL})"
@ruby_info << ", platform: #{RUBY_PLATFORM}"
end
# @readme = File.read("PHP_Markdown_README.txt")
# found here:
# http://wpcal.firetree.net/wp-content/plugins/PHP%20Markdown%201.0.1k/PHP%20Markdown%20Readme.text
@readme = File.read("README.md")
# try this one instead:
# http://eigenclass.org/misc/README.md
@readme_files = []
(0..5).each do |i|
@readme_files << @readme * (2**i)
end
num = 32
test_iterations = ARGV.first.to_i
test_iterations = 1 unless test_iterations > 1
puts
puts @ruby_info
puts
puts "Benchmark Ruby BlueCloth processing of: http://daringfireball.net/projects/markdown/syntax.text"
puts "file length = #{@readme.length}"
puts
print "running benchmark "
if test_iterations == 1
puts "once.\n\n"
else
puts "#{test_iterations} times.\n\n"
end
test_iterations.times do
Benchmark.bmbm do |x|
(0..5).each do |i|
x.report("process README.md concatenated #{2**i} times with BlueCloth") { BlueCloth::new(@readme_files[i]).to_html }
end
end
puts
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.