Filipe David Manana
1bdc1185c6
Use Erlang's OTP base64 module (available since R12B02) and avoid duplicated base64
encoding/decoding code in ibrowse_lib.erl and ibrowse_http_client.erl.
OTP's base64 module is also more efficient (C implementation):
1> Data = crypto:rand_bytes(4096).
<<205,174,13,169,97,159,110,161,71,43,226,153,42,101,243,
83,11,96,23,161,253,251,129,240,163,216,58,175,190,...>>
2>
2> timer:tc(ibrowse_lib, encode_base64, [Data]).
{2920,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
3> timer:tc(ibrowse_lib, encode_base64, [Data]).
{1221,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
4> timer:tc(ibrowse_lib, encode_base64, [Data]).
{1436,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
5> timer:tc(ibrowse_lib, encode_base64, [Data]).
{1195,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
6>
6> timer:tc(base64, encode, [Data]).
{1846,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
7> timer:tc(base64, encode, [Data]).
{743,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
8> timer:tc(base64, encode, [Data]).
{737,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
9> timer:tc(base64, encode, [Data]).
{656,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
15 år sedan