• Y
    Enable `Performance/UnfreezeString` cop · 1b86d901
    yuuji.yaginuma 提交于
    In Ruby 2.3 or later, `String#+@` is available and `+@` is faster than `dup`.
    
    ```ruby
    # frozen_string_literal: true
    
    require "bundler/inline"
    
    gemfile(true) do
      source "https://rubygems.org"
    
      gem "benchmark-ips"
    end
    
    Benchmark.ips do |x|
      x.report('+@') { +"" }
      x.report('dup') { "".dup }
      x.compare!
    end
    ```
    
    ```
    $ ruby -v benchmark.rb
    ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
    Warming up --------------------------------------
                      +@   282.289k i/100ms
                     dup   187.638k i/100ms
    Calculating -------------------------------------
                      +@      6.775M (± 3.6%) i/s -     33.875M in   5.006253s
                     dup      3.320M (± 2.2%) i/s -     16.700M in   5.032125s
    
    Comparison:
                      +@:  6775299.3 i/s
                     dup:  3320400.7 i/s - 2.04x  slower
    
    ```
    1b86d901
translation_helper.rb 5.9 KB