Advertisement
gravgun

VoxelArea locality speed test

Nov 9th, 2014
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.10 KB | None | 0 0
  1. VoxelArea = {
  2.     MinEdge = {x=1, y=1, z=1},
  3.     MaxEdge = {x=0, y=0, z=0},
  4.     ystride = 0,
  5.     zstride = 0,
  6. }
  7.  
  8. function VoxelArea:new()
  9.     o = o or {}
  10.     setmetatable(o, self)
  11.     self.__index = self
  12.  
  13.     local e = {x=10, y=20, z=30}
  14.     o.ystride = e.x
  15.     o.zstride = e.x * e.y
  16.  
  17.     return o
  18. end
  19.  
  20. function VoxelArea:getExtent()
  21.     return {
  22.         x = self.MaxEdge.x - self.MinEdge.x + 1,
  23.         y = self.MaxEdge.y - self.MinEdge.y + 1,
  24.         z = self.MaxEdge.z - self.MinEdge.z + 1,
  25.     }
  26. end
  27.  
  28. function VoxelArea:getExtentF()
  29.     local MaxEdge, MinEdge = self.MaxEdge, self.MinEdge
  30.     return {
  31.         x = MaxEdge.x - MinEdge.x + 1,
  32.         y = MaxEdge.y - MinEdge.y + 1,
  33.         z = MaxEdge.z - MinEdge.z + 1,
  34.     }
  35. end
  36.  
  37. local iter = 1000000
  38. local prefix = "C  LUA"
  39. if type(jit) == 'table' then -- If it's LuaJIT
  40.     iter = 1000000000
  41.     prefix = "LuaJIT"
  42. end
  43.  
  44. local x = os.clock()
  45. local v = VoxelArea:new()
  46. local d
  47. for i=1,iter do
  48.     d = v:getExtent()
  49. end
  50. print(string.format(prefix .. " Time  self: %.2f", os.clock() - x))
  51. x = os.clock()
  52. for i=1,iter do
  53.     d = v:getExtentF()
  54. end
  55. print(string.format(prefix .. " Time local : %.2f", os.clock() - x))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement