diff --git a/benches/query.lua b/benches/query.lua index 195e9c6..34b63de 100644 --- a/benches/query.lua +++ b/benches/query.lua @@ -39,6 +39,29 @@ do for _ in world:query(A, B, C, D, E, F, G, H) do end end) + + local e = world:entity() + world:set(e, A, true) + world:set(e, B, true) + world:set(e, C, true) + world:set(e, D, true) + world:set(e, E, true) + world:set(e, F, true) + world:set(e, G, true) + world:set(e, H, true) + + BENCH("Update Data", function() + for _ = 1, 100 do + world:set(e, A, false) + world:set(e, B, false) + world:set(e, C, false) + world:set(e, D, false) + world:set(e, E, false) + world:set(e, F, false) + world:set(e, G, false) + world:set(e, H, false) + end + end) end local D1 = ecs:component() @@ -132,6 +155,29 @@ do for _ in world:query(A, B, C, D, E, F, G, H) do end end) + + local e = world:entity() + world:set(e, A, true) + world:set(e, B, true) + world:set(e, C, true) + world:set(e, D, true) + world:set(e, E, true) + world:set(e, F, true) + world:set(e, G, true) + world:set(e, H, true) + + BENCH("Update Data", function() + for _ = 1, 100 do + world:set(e, A, false) + world:set(e, B, false) + world:set(e, C, false) + world:set(e, D, false) + world:set(e, E, false) + world:set(e, F, false) + world:set(e, G, false) + world:set(e, H, false) + end + end) end local D1 = ecs:component() diff --git a/benches/visual/insertion.bench.lua b/benches/visual/insertion.bench.lua index 3f7415a..e8e50be 100644 --- a/benches/visual/insertion.bench.lua +++ b/benches/visual/insertion.bench.lua @@ -8,6 +8,8 @@ local jecs = require(ReplicatedStorage.Lib) local ecr = require(ReplicatedStorage.DevPackages.ecr) local newWorld = Matter.World.new() local ecs = jecs.World.new() +local mirror = require(ReplicatedStorage.mirror) +local mcs = mirror.World.new() local A1 = Matter.component() local A2 = Matter.component() @@ -35,6 +37,15 @@ local C5 = ecs:entity() local C6 = ecs:entity() local C7 = ecs:entity() local C8 = ecs:entity() +local E1 = mcs:entity() +local E2 = mcs:entity() +local E3 = mcs:entity() +local E4 = mcs:entity() +local E5 = mcs:entity() +local E6 = mcs:entity() +local E7 = mcs:entity() +local E8 = mcs:entity() + local registry2 = ecr.registry() return { @@ -44,7 +55,7 @@ return { Functions = { Matter = function() - for i = 1, 50 do + for i = 1, 500 do newWorld:spawn( A1({ value = true }), A2({ value = true }), @@ -60,8 +71,8 @@ return { ECR = function() - for i = 1, 50 do - local e = registry2.create() + local e = registry2.create() + for i = 1, 500 do registry2:set(e, B1, {value = false}) registry2:set(e, B2, {value = false}) registry2:set(e, B3, {value = false}) @@ -78,7 +89,7 @@ return { local e = ecs:entity() - for i = 1, 50 do + for i = 1, 500 do ecs:set(e, C1, {value = false}) ecs:set(e, C2, {value = false}) @@ -89,6 +100,23 @@ return { ecs:set(e, C7, {value = false}) ecs:set(e, C8, {value = false}) + end + end, + Mirror = function() + + local e = ecs:entity() + + for i = 1, 500 do + + mcs:set(e, E1, {value = false}) + mcs:set(e, E2, {value = false}) + mcs:set(e, E3, {value = false}) + mcs:set(e, E4, {value = false}) + mcs:set(e, E5, {value = false}) + mcs:set(e, E6, {value = false}) + mcs:set(e, E7, {value = false}) + mcs:set(e, E8, {value = false}) + end end