Skip to content

Instantly share code, notes, and snippets.

@enebo
Created November 15, 2021 23:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save enebo/8bc4bd8fb11a963eb0bbd31a168d949e to your computer and use it in GitHub Desktop.
Save enebo/8bc4bd8fb11a963eb0bbd31a168d949e to your computer and use it in GitHub Desktop.
# frozen_string_literal: true
require 'benchmark/ips'
require 'logger'
puts RUBY_DESCRIPTION
logger = Logger.new(File::NULL)
Benchmark.ips do |x|
x.config(:time => 30, :warmup => 30)
x.report('Time.now.strftime') do
Time.now.strftime("%Y-%m-%dT%H:%M:%S.%6N")
end
x.report('Logger#add') do
logger.add(Logger::DEBUG, "benchmark a logger")
end
x.report('Logger#info') do
logger.info("literally just something")
end
end
BEFORE:
system ~/work/jruby jruby-9.3 1562% jruby ../snippets/bench_strftime.rb
Ignoring bcrypt-ruby-3.0.0-java because its extensions are not built. Try: gem pristine bcrypt-ruby --version 3.0.0
jruby 9.3.2.0-SNAPSHOT (2.6.8) 2021-11-15 a482e20f63 OpenJDK 64-Bit Server VM 25.242-b08 on 1.8.0_242-b08 +jit [linux-x86_64]
Warming up --------------------------------------
Time.now.strftime 32.131k i/100ms
Logger#add 14.096k i/100ms
Logger#info 13.551k i/100ms
Calculating -------------------------------------
Time.now.strftime 290.776k (± 3.0%) i/s - 8.740M in 30.085435s
Logger#add 148.050k (± 5.1%) i/s - 4.440M in 30.083826s
Logger#info 144.186k (± 3.3%) i/s - 4.323M in 30.016301s
system ~/work/jruby jruby-9.3 1563% jruby -Xcompile.invokedynamic ../snippets/bench_strftime.rb
Ignoring bcrypt-ruby-3.0.0-java because its extensions are not built. Try: gem pristine bcrypt-ruby --version 3.0.0
jruby 9.3.2.0-SNAPSHOT (2.6.8) 2021-11-15 a482e20f63 OpenJDK 64-Bit Server VM 25.242-b08 on 1.8.0_242-b08 +indy +jit [linux-x86_64]
Warming up --------------------------------------
Time.now.strftime 30.297k i/100ms
Logger#add 16.859k i/100ms
Logger#info 16.504k i/100ms
Calculating -------------------------------------
Time.now.strftime 301.153k (± 2.9%) i/s - 9.029M in 30.006521s
Logger#add 174.820k (± 4.7%) i/s - 5.243M in 30.072275s
Logger#info 176.989k (± 3.5%) i/s - 5.314M in 30.068419s
AFTER:
jruby ../snippets/bench_strftime.rb
Ignoring bcrypt-ruby-3.0.0-java because its extensions are not built. Try: gem pristine bcrypt-ruby --version 3.0.0
jruby 9.3.2.0-SNAPSHOT (2.6.8) 2021-11-15 f7df8d0a6d OpenJDK 64-Bit Server VM 25.242-b08 on 1.8.0_242-b08 +jit [linux-x86_64]
Warming up --------------------------------------
Time.now.strftime 100.407k i/100ms
Logger#add 23.699k i/100ms
Logger#info 22.821k i/100ms
Calculating -------------------------------------
Time.now.strftime 964.240k (± 2.7%) i/s - 28.917M in 30.013077s
Logger#add 256.086k (± 3.2%) i/s - 7.678M in 30.018332s
Logger#info 245.748k (± 3.1%) i/s - 7.371M in 30.026685s
system ~/work/jruby new_strftime 1571% jruby -Xcompile.invokedynamic ../snippets/bench_strftime.rb
Ignoring bcrypt-ruby-3.0.0-java because its extensions are not built. Try: gem pristine bcrypt-ruby --version 3.0.0
jruby 9.3.2.0-SNAPSHOT (2.6.8) 2021-11-15 f7df8d0a6d OpenJDK 64-Bit Server VM 25.242-b08 on 1.8.0_242-b08 +indy +jit [linux-x86_64]
Warming up --------------------------------------
Time.now.strftime 101.880k i/100ms
Logger#add 31.154k i/100ms
Logger#info 29.295k i/100ms
Calculating -------------------------------------
Time.now.strftime 999.252k (± 2.5%) i/s - 29.953M in 29.993630s
Logger#add 341.463k (± 3.5%) i/s - 10.250M in 30.072201s
Logger#info 336.121k (± 2.6%) i/s - 10.077M in 30.003324s
MRI26:
mri26 ../snippets/bench_strftime.rb
ruby 2.6.7p197 (2021-04-05 revision 67941) [x86_64-linux]
Warming up --------------------------------------
Time.now.strftime 65.008k i/100ms
Logger#add 13.641k i/100ms
Logger#info 14.270k i/100ms
Calculating -------------------------------------
Time.now.strftime 535.604k (± 2.0%) i/s - 16.122M in 30.113361s
Logger#add 146.675k (± 2.0%) i/s - 4.406M in 30.052030s
Logger#info 141.943k (± 2.9%) i/s - 4.267M in 30.087328s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment