Actions
Patch #31059
closedUse #b shortcut instead of #force_encoding
Description
follow up for #26561
this patch replaces all .force_encoding('ASCII-8BIT') or .force_encoding('BINARY') to .b
String#b is available since Ruby 2.0
https://www.rubydoc.info/stdlib/core/2.0.0/String%3ab
#b returns unfrozen string so + can be omited, this way the code can be much shorter and it's even faster
# frozen-string-literal: true require 'benchmark/ips' def test_b 'looooonghsalfhfslakfsalhsfalhfsalhfsalhfsa'.b end def test_force (+"looooonghsalfhfslakfsalhsfalhfsalhfsalhfsa").force_encoding('ASCII-8BIT') end Benchmark.ips do |x| x.report('b', 'test_b') x.report('force', 'test_force') end
Warming up -------------------------------------- b 278.357k i/100ms force 191.903k i/100ms Calculating ------------------------------------- b 8.628M (± 6.3%) i/s - 43.145M in 5.023695s force 3.888M (± 7.9%) i/s - 19.382M in 5.021761s
Files
Related issues
Actions