From cf3a374bf4db9340ad20ef6c863553afec6abbde Mon Sep 17 00:00:00 2001 From: Loic Nageleisen Date: Wed, 26 Apr 2023 11:59:23 +0200 Subject: [PATCH] Add format vs interpolation --- format-string/README.md | 12 ++++++++++++ format-string/example.rb | 16 ++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 format-string/README.md create mode 100755 format-string/example.rb diff --git a/format-string/README.md b/format-string/README.md new file mode 100644 index 0000000..68e5c88 --- /dev/null +++ b/format-string/README.md @@ -0,0 +1,12 @@ +``` +Warming up -------------------------------------- + format 611.664k i/100ms + #{} 1.229M i/100ms +Calculating ------------------------------------- + format 6.037M (± 4.3%) i/s - 30.583M in 5.077835s + #{} 12.277M (± 0.4%) i/s - 61.438M in 5.004388s + +Comparison: + #{}: 12276995.7 i/s + format: 6037136.3 i/s - 2.03x slower +``` diff --git a/format-string/example.rb b/format-string/example.rb new file mode 100755 index 0000000..e989390 --- /dev/null +++ b/format-string/example.rb @@ -0,0 +1,16 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +require 'benchmark/ips' + +value = 'value' + +Benchmark.ips do |x| + x.time = 5 + x.warmup = 0.5 + + x.report('format') { format('key:%s', value) } + x.report('#{}') { "key:#{value}" } + + x.compare! +end