mirror of
https://github.com/Ukendio/jecs.git
synced 2025-04-25 17:40:02 +00:00
97 lines
1.5 KiB
Text
97 lines
1.5 KiB
Text
|
local jecs = require("../src/init")
|
||
|
|
||
|
local testkit = require("../testkit")
|
||
|
|
||
|
local BENCH, START = testkit.benchmark()
|
||
|
|
||
|
local function TITLE(s: string)
|
||
|
print()
|
||
|
print(testkit.color.white(s))
|
||
|
end
|
||
|
|
||
|
local N = 2^18
|
||
|
|
||
|
local pair = jecs.pair
|
||
|
|
||
|
do TITLE "create"
|
||
|
local world = jecs.World.new()
|
||
|
|
||
|
BENCH("entity", function()
|
||
|
for i = 1, START(N) do
|
||
|
world:entity()
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
local A, B = world:entity(), world:entity()
|
||
|
|
||
|
BENCH("pair", function()
|
||
|
for i = 1, START(N) do
|
||
|
jecs.pair(A, B)
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
end
|
||
|
|
||
|
do TITLE "set"
|
||
|
|
||
|
local world = jecs.World.new()
|
||
|
local A = world:entity()
|
||
|
|
||
|
local entities = table.create(N)
|
||
|
|
||
|
for i = 1, N do
|
||
|
entities[i] = world:entity()
|
||
|
end
|
||
|
|
||
|
BENCH("add", function()
|
||
|
for i = 1, START(N) do
|
||
|
world:set(entities[i], A, 1)
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
BENCH("set", function()
|
||
|
for i = 1, START(N) do
|
||
|
world:set(entities[i], A, 2)
|
||
|
end
|
||
|
end)
|
||
|
end
|
||
|
|
||
|
do TITLE "get"
|
||
|
|
||
|
local world = jecs.World.new()
|
||
|
local A, B, C, D = world:entity(), world:entity(), world:entity(), world:entity()
|
||
|
|
||
|
local entities = table.create(N)
|
||
|
|
||
|
for i = 1, N do
|
||
|
entities[i] = world:entity()
|
||
|
world:set(entities[i], A, 1)
|
||
|
world:set(entities[i], B, 1)
|
||
|
world:set(entities[i], C, 1)
|
||
|
world:set(entities[i], D, 1)
|
||
|
end
|
||
|
|
||
|
BENCH("1", function()
|
||
|
for i = 1, START(N) do
|
||
|
world:get(entities[i], A)
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
BENCH("2", function()
|
||
|
for i = 1, START(N) do
|
||
|
world:get(entities[i], A, B)
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
BENCH("3", function()
|
||
|
for i = 1, START(N) do
|
||
|
world:get(entities[i], A, B, C)
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
BENCH("4", function()
|
||
|
for i = 1, START(N) do
|
||
|
world:get(entities[i], A, B, C, D)
|
||
|
end
|
||
|
end)
|
||
|
end
|