jecs/benches/visual/remove.bench.luau
Marcus 155d51a080 Add exclusive relations (#250)
* Add exclusive relationship

* Remove focus

* Remove whitespace

* Make ChildOf exclusive

* Test exclusive relation perf

* Inline into world:add

* Inline into world:set

* Fix benchmark of remove
2025-07-04 04:24:14 +02:00

52 lines
1.3 KiB
Text
Executable file

--!optimize 2
--!native
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Matter = require(ReplicatedStorage.DevPackages.Matter)
local ecr = require(ReplicatedStorage.DevPackages.ecr)
local jecs = require(ReplicatedStorage.Lib:Clone())
local pair = jecs.pair
local ecs = jecs.world()
local mirror = require(ReplicatedStorage.mirror:Clone())
local mcs = mirror.world()
local C1 = ecs:component()
local C2 = ecs:entity()
ecs:add(C2, pair(jecs.OnDeleteTarget, jecs.Delete))
ecs:add(C2, jecs.Exclusive)
local C3 = ecs:entity()
ecs:add(C3, pair(jecs.OnDeleteTarget, jecs.Delete))
local C4 = ecs:entity()
ecs:add(C4, pair(jecs.OnDeleteTarget, jecs.Delete))
local E1 = mcs:component()
local E2 = mcs:entity()
mcs:add(E2, pair(jecs.OnDeleteTarget, jecs.Delete))
local E3 = mcs:entity()
mcs:add(E3, pair(jecs.OnDeleteTarget, jecs.Delete))
local E4 = mcs:entity()
mcs:add(E4, pair(jecs.OnDeleteTarget, jecs.Delete))
return {
ParameterGenerator = function()
end,
Functions = {
Mirror = function()
local m = mcs:entity()
for i = 1, 100 do
mcs:add(m, pair(E2, E3))
mcs:remove(m, pair(E2, E3))
mcs:add(m, pair(E2, E4))
end
end,
Jecs = function()
local j = ecs:entity()
for i = 1, 100 do
ecs:add(j, pair(C2, C3))
ecs:add(j, pair(C2, C4))
end
end,
},
}