--------------------------------------------------
-- CPU Benchmarking Functions
--------------------------------------------------
function GetSystemTimeSeconds()
local socket = require "socket"
return socket.gettime()*1000
end
function CPUBenchmark()
--This function gives the CPU some busy work to do.
--CPU score is determined by how quickly the work is completed.
print("test")
local totalTime = 0
local lastTime
local currTime
local countTime = 0
--Make everything a local variable
--This is necessary because we don't want LUA searching through the globals as part of the benchmark
local TableInsert = table.insert
local TableRemove = table.remove
local h
local i
local j
local k
local l
local m
local n = {}
for h = 1, 24, 1 do
-- If the need for the benchmark no longer exists, abort it now.
-- if not lobbyComm then
-- return
-- end
lastTime = GetSystemTimeSeconds()
-- print(lastTime)
for i = 1.0, 30.4, 0.0008 do
--This instruction set should cover most LUA operators
j = i + i --Addition
k = i * i --Multiplication
l = k / j --Division
m = j - i --Subtraction
j = i ^ 4 --Power
l = -i --Negation
m = {'1234567890', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', true} --Create Table
TableInsert(m, '1234567890') --Insert Table Value
k = i < j --Less Than
k = i == j --Equality
k = i <= j --Less Than or Equal to
k = not k
n[tostring(i)] = m
end
currTime = GetSystemTimeSeconds()
totalTime = totalTime + currTime - lastTime
if totalTime > countTime then
--This is necessary in order to make this 'thread' yield so other things can be done.
countTime = totalTime + .125
-- coroutine.yield(1)
end
end
BenchTime = math.ceil(totalTime )
print(BenchTime)
return BenchTime
end
print(CPUBenchmark())
Comments