mirror of
https://github.com/godotengine/godot-benchmarks.git
synced 2025-12-31 09:49:13 +03:00
- Make idle and physics time measurements somewhat functional, given what the engine exposes.
221 lines
4.9 KiB
GDScript
221 lines
4.9 KiB
GDScript
extends Benchmark
|
|
|
|
const ITERATIONS = 2_000_000
|
|
|
|
# Benchmark various array types by:
|
|
# 1) Inserting ITERATIONS elements from the back
|
|
# 2) Updating all ITERATIONS elements
|
|
# 3) Popping all ITERATIONS elements from the front (non-constant complexity)
|
|
|
|
func benchmark_packed_int32_array() -> void:
|
|
var array := PackedInt32Array()
|
|
for i in ITERATIONS:
|
|
array.push_back(i)
|
|
for i in ITERATIONS:
|
|
array[i] = 0
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_packed_int64_array() -> void:
|
|
var array := PackedInt64Array()
|
|
for i in ITERATIONS:
|
|
array.push_back(i)
|
|
for i in ITERATIONS:
|
|
array[i] = 0
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_typed_int_array() -> void:
|
|
var array: Array[int] = []
|
|
for i in ITERATIONS:
|
|
array.push_back(i)
|
|
for i in ITERATIONS:
|
|
array[i] = 0
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_untyped_int_array() -> void:
|
|
var array = []
|
|
for i in ITERATIONS:
|
|
array.push_back(i)
|
|
for i in ITERATIONS:
|
|
array[i] = 0
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_packed_float32_array() -> void:
|
|
var array := PackedFloat32Array()
|
|
for i in ITERATIONS:
|
|
array.push_back(i)
|
|
for i in ITERATIONS:
|
|
array[i] = 0.0
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_packed_float64_array() -> void:
|
|
var array := PackedFloat64Array()
|
|
for i in ITERATIONS:
|
|
array.push_back(i)
|
|
for i in ITERATIONS:
|
|
array[i] = 0.0
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_typed_float_array() -> void:
|
|
var array: Array[float] = []
|
|
for i in ITERATIONS:
|
|
array.push_back(i)
|
|
for i in ITERATIONS:
|
|
array[i] = 0.0
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_untyped_float_array() -> void:
|
|
var array = []
|
|
for i in ITERATIONS:
|
|
array.push_back(i)
|
|
for i in ITERATIONS:
|
|
array[i] = 0.0
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_packed_vector2_array() -> void:
|
|
var array := PackedVector2Array()
|
|
for i in ITERATIONS:
|
|
array.push_back(Vector2(i, i))
|
|
for i in ITERATIONS:
|
|
array[i] = Vector2.ZERO
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_typed_vector2_array() -> void:
|
|
var array: Array[Vector2] = []
|
|
for i in ITERATIONS:
|
|
array.push_back(Vector2(i, i))
|
|
for i in ITERATIONS:
|
|
array[i] = Vector2.ZERO
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_untyped_vector2_array() -> void:
|
|
var array = []
|
|
for i in ITERATIONS:
|
|
array.push_back(Vector2(i, i))
|
|
for i in ITERATIONS:
|
|
array[i] = Vector2.ZERO
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_packed_vector3_array() -> void:
|
|
var array := PackedVector3Array()
|
|
for i in ITERATIONS:
|
|
array.push_back(Vector3(i, i, i))
|
|
for i in ITERATIONS:
|
|
array[i] = Vector3.ZERO
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_typed_vector3_array() -> void:
|
|
var array: Array[Vector3] = []
|
|
for i in ITERATIONS:
|
|
array.push_back(Vector3(i, i, i))
|
|
for i in ITERATIONS:
|
|
array[i] = Vector3.ZERO
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_untyped_vector3_array() -> void:
|
|
var array = []
|
|
for i in ITERATIONS:
|
|
array.push_back(Vector3(i, i, i))
|
|
for i in ITERATIONS:
|
|
array[i] = Vector3.ZERO
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_packed_color_array() -> void:
|
|
var array := PackedColorArray()
|
|
for i in ITERATIONS:
|
|
array.push_back(Color(i, i, i, 1.0))
|
|
for i in ITERATIONS:
|
|
array[i] = Color.BLACK
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_typed_color_array() -> void:
|
|
var array: Array[Color] = []
|
|
for i in ITERATIONS:
|
|
array.push_back(Color(i, i, i, 1.0))
|
|
for i in ITERATIONS:
|
|
array[i] = Color.BLACK
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_untyped_color_array() -> void:
|
|
var array = []
|
|
for i in ITERATIONS:
|
|
array.push_back(Color(i, i, i, 1.0))
|
|
for i in ITERATIONS:
|
|
array[i] = Color.BLACK
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_packed_string_array() -> void:
|
|
var array := PackedStringArray()
|
|
for i in ITERATIONS:
|
|
array.push_back(str("Godot ", i))
|
|
for i in ITERATIONS:
|
|
array[i] = ""
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_typed_string_array() -> void:
|
|
var array: Array[String] = []
|
|
for i in ITERATIONS:
|
|
array.push_back(str("Godot ", i))
|
|
for i in ITERATIONS:
|
|
array[i] = ""
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_untyped_string_array() -> void:
|
|
var array = []
|
|
for i in ITERATIONS:
|
|
array.push_back(str("Godot ", i))
|
|
for i in ITERATIONS:
|
|
array[i] = ""
|
|
for i in ITERATIONS:
|
|
array.remove_at(array.size() - 1)
|
|
|
|
|
|
func benchmark_fill_loop() -> void:
|
|
var array = []
|
|
array.resize(10_000_000)
|
|
for i in array.size():
|
|
array[i] = 1234
|
|
|
|
|
|
func benchmark_fill_method() -> void:
|
|
var array = []
|
|
array.resize(10_000_000)
|
|
array.fill(1234)
|