Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- VoxelArea = {
- MinEdge = {x=1, y=1, z=1},
- MaxEdge = {x=0, y=0, z=0},
- ystride = 0,
- zstride = 0,
- }
- function VoxelArea:new()
- o = o or {}
- setmetatable(o, self)
- self.__index = self
- local e = {x=10, y=20, z=30}
- o.ystride = e.x
- o.zstride = e.x * e.y
- return o
- end
- function VoxelArea:getExtent()
- return {
- x = self.MaxEdge.x - self.MinEdge.x + 1,
- y = self.MaxEdge.y - self.MinEdge.y + 1,
- z = self.MaxEdge.z - self.MinEdge.z + 1,
- }
- end
- function VoxelArea:getExtentF()
- local MaxEdge, MinEdge = self.MaxEdge, self.MinEdge
- return {
- x = MaxEdge.x - MinEdge.x + 1,
- y = MaxEdge.y - MinEdge.y + 1,
- z = MaxEdge.z - MinEdge.z + 1,
- }
- end
- local iter = 1000000
- local prefix = "C LUA"
- if type(jit) == 'table' then -- If it's LuaJIT
- iter = 1000000000
- prefix = "LuaJIT"
- end
- local x = os.clock()
- local v = VoxelArea:new()
- local d
- for i=1,iter do
- d = v:getExtent()
- end
- print(string.format(prefix .. " Time self: %.2f", os.clock() - x))
- x = os.clock()
- for i=1,iter do
- d = v:getExtentF()
- end
- print(string.format(prefix .. " Time local : %.2f", os.clock() - x))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement