Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Classes
- local class_1 = {}
- class_1.__index = class_1
- function class_1:func_1()
- self.v = self.v + self.v
- end
- local class_2 = setmetatable({}, class_1)
- class_2.__index = class_2
- function class_2:func_2()
- self.v = self.v - self.v
- end
- local class_3 = setmetatable({}, class_2)
- class_3.__index = class_3
- function class_3:func_3()
- self.v = self.v * self.v
- end
- -- Components
- local comp_1 = {}
- comp_1.objects = {}
- function comp_1.add(o)
- comp_1.objects[#comp_1.objects + 1] = o
- end
- function comp_1.func_1(id)
- local o = comp_1.objects[id]
- o.v = o.v + o.v
- end
- function comp_1.update()
- for i = 1, #comp_1.objects do
- comp_1.func_1(i)
- end
- end
- local comp_2 = {}
- comp_2.objects = {}
- function comp_2.add(o)
- comp_2.objects[#comp_2.objects + 1] = o
- end
- function comp_2.func_1(id)
- local o = comp_2.objects[id]
- o.v = o.v - o.v
- end
- function comp_2.update()
- for i = 1, #comp_2.objects do
- comp_2.func_1(i)
- end
- end
- local comp_3 = {}
- comp_3.objects = {}
- function comp_3.add(o)
- comp_3.objects[#comp_3.objects + 1] = o
- end
- function comp_3.func_1(id)
- local o = comp_3.objects[id]
- o.v = o.v * o.v
- end
- function comp_3.update()
- for i = 1, #comp_3.objects do
- comp_3.func_1(i)
- end
- end
- -- Initial creation
- local objects = {}
- for i = 1, 5000000 do
- local o = {v = 10}
- objects[i] = setmetatable(o, class_3)
- comp_1.add(o)
- comp_2.add(o)
- comp_3.add(o)
- end
- -- Actual test
- local s1 = love.timer.getTime()
- for i = 1, #objects do
- local o = objects[i]
- o:func_1()
- o:func_2()
- o:func_3()
- end
- local e1 = love.timer.getTime()
- local s2 = love.timer.getTime()
- comp_1.update()
- comp_2.update()
- comp_3.update()
- local e2 = love.timer.getTime()
- print(e1 - s1)
- print(e2 - s2)
Advertisement
Add Comment
Please, Sign In to add comment