mirror of
https://github.com/bunkerity/bunkerweb
synced 2026-05-24 09:28:37 +00:00
git-subtree-dir: src/deps/src/lbase64 git-subtree-split: c261320edbdf82c16409d893a96c28c704aa0ab8
76 lines
2 KiB
Lua
76 lines
2 KiB
Lua
local base64 = require'base64'
|
|
local N = 10000000
|
|
local st = {}
|
|
local letters = ' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
|
|
.. 'абвгдеёжзийклмнопрстуфхцшщчъыьэюя'
|
|
.. 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦШЩЧЪЫЬЭЮЯ'
|
|
local nletters = #letters
|
|
for i = 1, N do
|
|
local j = math.random( nletters )
|
|
st[i] = letters:sub( j, j )
|
|
end
|
|
local s = table.concat( st )
|
|
local t = os.clock()
|
|
local encoded = base64.encode( s )
|
|
local encodetime = os.clock() - t
|
|
|
|
t = os.clock()
|
|
local decoded = base64.decode( encoded )
|
|
local decodetime = os.clock() - t
|
|
|
|
assert( s == decoded )
|
|
print('Common text')
|
|
print(('Encoding: %d bytes/sec'):format( math.floor(N/encodetime)))
|
|
print(('Decoding: %d bytes/sec'):format( math.floor(N/decodetime)))
|
|
collectgarbage()
|
|
|
|
t = os.clock()
|
|
encoded = base64.encode( s, nil, true )
|
|
encodetime = os.clock() - t
|
|
|
|
t = os.clock()
|
|
decoded = base64.decode( encoded, nil, true )
|
|
assert( s == decoded )
|
|
decodetime = os.clock() - t
|
|
print('Common text (cache)')
|
|
print(('Encoding: %d bytes/sec'):format( math.floor(N/encodetime)))
|
|
print(('Decoding: %d bytes/sec'):format( math.floor(N/decodetime)))
|
|
collectgarbage()
|
|
|
|
local lt = {}
|
|
for i = 0, 255 do
|
|
lt[i] = string.char(i)
|
|
end
|
|
nletters = #lt
|
|
for i = 1, N do
|
|
local j = math.random( nletters )
|
|
st[i] = lt[j]
|
|
end
|
|
s = table.concat( st )
|
|
|
|
t = os.clock()
|
|
encoded = base64.encode( s, nil )
|
|
encodetime = os.clock() - t
|
|
|
|
t = os.clock()
|
|
decoded = base64.decode( encoded )
|
|
decodetime = os.clock() - t
|
|
|
|
assert( s == decoded )
|
|
print('Binary')
|
|
print(('Encoding: %d bytes/sec'):format( math.floor(N/encodetime)))
|
|
print(('Decoding: %d bytes/sec'):format( math.floor(N/decodetime)))
|
|
collectgarbage()
|
|
|
|
t = os.clock()
|
|
encoded = base64.encode( s, nil, true )
|
|
encodetime = os.clock() - t
|
|
|
|
t = os.clock()
|
|
decoded = base64.decode( encoded, nil, true )
|
|
assert( s == decoded )
|
|
decodetime = os.clock() - t
|
|
print('Binary (cache)')
|
|
print(('Encoding: %d bytes/sec'):format( math.floor(N/encodetime)))
|
|
print(('Decoding: %d bytes/sec'):format( math.floor(N/decodetime)))
|
|
collectgarbage()
|