[ruby-core:96184] [Ruby master Feature#13827] Improve performance of `Base64.urlsafe_encode64`
From:
mame@...
Date:
2019-12-10 05:34:58 UTC
List:
ruby-core #96184
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>