Added benchmarks

This commit is contained in:
Eduard Urbach 2024-02-15 14:57:08 +01:00
parent 37ed8890ec
commit 8de91eaba1
Signed by: akyoto
GPG Key ID: C874F672B1AF20C0
2 changed files with 73 additions and 0 deletions

View File

@ -0,0 +1,63 @@
extends Node
var n := 1000000
var benchmarks = [
"pass",
"get_node",
"find_child",
"get_child",
"get_parent",
"get_viewport",
"get_tree",
"create_timer",
]
func _ready():
for b in benchmarks:
print("%s:" % b)
bench(self["_%s" % b])
await get_tree().create_timer(0.5).timeout
get_tree().quit()
func bench(callable: Callable):
var t := now()
callable.call()
prints(round((now() - t) / n * 1000000000), "ns")
func now() -> float:
return Time.get_unix_time_from_system()
func _pass():
for i in range(n):
pass
func _get_node():
for i in range(n):
get_node("Child")
func _find_child():
for i in range(n):
find_child("Child")
func _get_child():
for i in range(n):
get_child(0)
func _get_parent():
for i in range(n):
get_parent()
func _get_viewport():
for i in range(n):
get_viewport()
func _get_tree():
for i in range(n):
get_tree()
func _create_timer():
var tree := get_tree()
for i in range(n):
tree.create_timer(0)

View File

@ -0,0 +1,10 @@
[gd_scene load_steps=2 format=3 uid="uid://bk5p5w2gxxuq5"]
[ext_resource type="Script" path="res://benchmark/Benchmark.gd" id="1_363x2"]
[node name="Benchmark" type="Node"]
[node name="Node" type="Node" parent="."]
script = ExtResource("1_363x2")
[node name="Child" type="Node" parent="Node"]