1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00
This commit is contained in:
sfan5 2025-06-25 10:36:30 +02:00
parent 90b80d52a8
commit 72fd9cedaf

View file

@ -106,7 +106,7 @@ core.register_chatcommand("bench_bulk_set_node", {
core.chat_send_player(name, "Warming up finished, now benchmarking ...") core.chat_send_player(name, "Warming up finished, now benchmarking ...")
local start_time = core.get_us_time() local start_time = core.get_us_time()
for i=1,#pos_list do for i = 1, #pos_list do
core.set_node(pos_list[i], {name = "mapgen_stone"}) core.set_node(pos_list[i], {name = "mapgen_stone"})
end end
local middle_time = core.get_us_time() local middle_time = core.get_us_time()
@ -130,12 +130,12 @@ core.register_chatcommand("bench_bulk_get_node", {
return false, "No player." return false, "No player."
end end
local pos_list = get_positions_cube(player:get_pos()) local pos_list = get_positions_cube(player:get_pos())
local dummy = 0
local function bench() local function bench()
local start_time = core.get_us_time() local start_time = core.get_us_time()
local dummy = 0 for i = 1, #pos_list do
for i=1,#pos_list do
local n = core.get_node(pos_list[i]) local n = core.get_node(pos_list[i])
-- Make sure the name lookup is not optimized away -- Make sure the name lookup is not optimized away (can this even happen?)
dummy = dummy + #n.name dummy = dummy + #n.name
end end
return core.get_us_time() - start_time return core.get_us_time() - start_time
@ -163,10 +163,10 @@ core.register_chatcommand("bench_bulk_get_node_raw", {
return false, "No player." return false, "No player."
end end
local pos_list = get_positions_cube(player:get_pos()) local pos_list = get_positions_cube(player:get_pos())
local dummy = 0
local function bench() local function bench()
local start_time = core.get_us_time() local start_time = core.get_us_time()
local dummy = 0 for i = 1, #pos_list do
for i=1,#pos_list do
local pos_i = pos_list[i] local pos_i = pos_list[i]
local nid = core.get_node_raw(pos_i.x, pos_i.y, pos_i.z) local nid = core.get_node_raw(pos_i.x, pos_i.y, pos_i.z)
-- Make sure the result is not optimized away -- Make sure the result is not optimized away
@ -197,10 +197,10 @@ core.register_chatcommand("bench_bulk_get_node_raw2", {
return false, "No player." return false, "No player."
end end
local pos_list = get_positions_cube(player:get_pos()) local pos_list = get_positions_cube(player:get_pos())
local dummy = 0
local function bench() local function bench()
local start_time = core.get_us_time() local start_time = core.get_us_time()
local dummy = 0 for i = 1, #pos_list do
for i=1,#pos_list do
local pos_i = pos_list[i] local pos_i = pos_list[i]
local nid = core.get_node_raw(pos_i.x, pos_i.y, pos_i.z) local nid = core.get_node_raw(pos_i.x, pos_i.y, pos_i.z)
local name = core.get_name_from_content_id(nid) local name = core.get_name_from_content_id(nid)
@ -232,13 +232,16 @@ core.register_chatcommand("bench_bulk_get_node_vm", {
return false, "No player." return false, "No player."
end end
local pos = player:get_pos() local pos = player:get_pos()
local dummy = 0
local function bench() local function bench()
local start_time = core.get_us_time() local start_time = core.get_us_time()
local vm = core.get_voxel_manip(pos:offset(1,1,1), pos:offset(100,100,100)) local vm = core.get_voxel_manip(pos:offset(1,1,1), pos:offset(100,100,100))
local data = vm:get_data() local data = vm:get_data()
local mid_time = core.get_us_time() local mid_time = core.get_us_time()
local dummy = 0 -- Note that the VManip will actually retrieve more than just the 100³ nodes
for i=1,99*99*99 do -- and also we don't need to iterate pos_list here, so it's not an entirely
-- fair comparison.
for i = 1, 99*99*99 do
local nid = data[i] local nid = data[i]
-- Make sure the table lookup is not optimized away -- Make sure the table lookup is not optimized away
dummy = dummy + nid dummy = dummy + nid
@ -278,7 +281,7 @@ core.register_chatcommand("bench_bulk_swap_node", {
core.chat_send_player(name, "Warming up finished, now benchmarking ...") core.chat_send_player(name, "Warming up finished, now benchmarking ...")
local start_time = core.get_us_time() local start_time = core.get_us_time()
for i=1,#pos_list do for i = 1, #pos_list do
core.swap_node(pos_list[i], {name = "mapgen_stone"}) core.swap_node(pos_list[i], {name = "mapgen_stone"})
end end
local middle_time = core.get_us_time() local middle_time = core.get_us_time()