chore(bench): add lua benchmarks (#135)

This commit is contained in:
Luke Edwards 2021-06-23 23:12:32 -07:00 committed by GitHub
parent beaff939bb
commit aba0546c2a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 100 additions and 5 deletions

View File

@ -29,8 +29,9 @@ BENCHMARKS = (
## Map from file extension to it's interpreter, Will be updated. ## Map from file extension to it's interpreter, Will be updated.
INTERPRETERS = { INTERPRETERS = {
'.pk' : None, '.pk' : None,
'.lua' : None,
'.wren' : None, '.wren' : None,
'.rb' : None, '.js' : None,
'.rb' : None, '.rb' : None,
} }
@ -82,6 +83,7 @@ def update_interpreters():
global INTERPRETERS global INTERPRETERS
INTERPRETERS['.pk'] = _find_interp('pocketlang', pocket) INTERPRETERS['.pk'] = _find_interp('pocketlang', pocket)
INTERPRETERS['.wren'] = _find_interp('wren', 'wren') INTERPRETERS['.wren'] = _find_interp('wren', 'wren')
INTERPRETERS['.lua'] = _find_interp('lua', 'lua')
INTERPRETERS['.rb'] = _find_interp('ruby', 'ruby') INTERPRETERS['.rb'] = _find_interp('ruby', 'ruby')
INTERPRETERS['.py'] = _find_interp('python', python) INTERPRETERS['.py'] = _find_interp('python', python)
INTERPRETERS['.js'] = _find_interp('javascript', 'node') INTERPRETERS['.js'] = _find_interp('javascript', 'node')

View File

@ -0,0 +1,13 @@
local start = os.clock()
local factors = {}
local N = 50000000
for i=1,N do
if N % i == 0 then
table.insert(factors, i)
end
end
local seconds = os.clock() - start
print('elapsed: ' .. seconds .. 's')

View File

@ -0,0 +1,16 @@
local function fib(n)
if n < 2 then
return n
else
return fib(n - 1) + fib(n - 2)
end
end
local start = os.clock()
for i=1, 10 do
print(fib(30))
end
local seconds = os.clock() - start
print('elapsed: ' .. seconds .. 's')

View File

@ -0,0 +1,22 @@
local function reverse(arr)
local len = #arr
local max = math.floor(len / 2)
for i=1, max do
local idx = len + 1 - i
arr[i], arr[idx] = arr[idx], arr[i]
end
end
local start = os.clock()
local N = 20000000
local list = {}
for i=1, N do
list[i] = i
end
reverse(list)
local seconds = os.clock() - start
print('elapsed: ' .. seconds .. 's')

View File

@ -0,0 +1,17 @@
local start = os.clock()
local list = {}
for i = 1, 10000000 do
list[i] = i - 1
end
local sum = 0
for i = 1, #list do
sum = sum + list[i]
end
print(sum)
local seconds = os.clock() - start
print('elapsed: ' .. seconds .. 's')

View File

@ -0,0 +1,25 @@
local function isPrime(n)
if n < 2 then
return false
end
for i=2, n-1 do
if n % i == 0 then
return false
end
end
return true
end
local start = os.clock()
local N = 30000
local primes = {}
for i = 0, N - 1 do
if isPrime(i) then
table.insert(primes, i)
end
end
local seconds = os.clock() - start
print('elapsed: ' .. seconds .. 's')