Issue #13827 has been updated by mame (Yusuke Endoh).

Status changed from Open to Closed

Merged at 1bdabaa6b13344c195698ca5b0ced323cb93e2e1.  Thank you for the cont=
ribution.

----------------------------------------
Feature #13827: Improve performance of `Base64.urlsafe_encode64`
https://bugs.ruby-lang.org/issues/13827#change-83061

* Author: Soilent (Konstantin x)
* Status: Closed
* Priority: Normal
* Assignee: =

* Target version: =

----------------------------------------
Improve performance of `Base64.urlsafe_encode64` by avoiding unnecessary me=
mory allocations. This may seem insignificant, but for the web service I am=
 working on this patch makes noticeable improvement.

### Benchmark

~~~ ruby
require 'benchmark/ips'
require 'base64'
require 'securerandom'

Benchmark.ips do |x|
  string =3D SecureRandom.bytes(128)

  x.report 'Base64.urlsafe_encode64' do |t|
    t.times { Base64.urlsafe_encode64(string) }
  end
end
~~~

### Before
                               =

~~~
Base64.urlsafe_encode64                                                    =
               =

                        559.355k (=B1 3.2%) i/s -      2.805M in   5.019239=
s               =

~~~ =


### After

~~~
Base64.urlsafe_encode64
                        736.211k (=B1 2.5%) i/s -      3.721M in   5.057606s
~~~

### Patch

https://github.com/ruby/ruby/pull/1676



-- =

https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=3Dunsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>