mirror of
https://github.com/godotengine/godot-benchmarks.git
synced 2026-01-01 13:49:20 +03:00
36 lines
829 B
GDScript
36 lines
829 B
GDScript
extends Benchmark
|
|
|
|
static func create_array(size: int) -> Array[int]:
|
|
var result : Array[int] = []
|
|
result.resize(size)
|
|
for i: int in size:
|
|
result[i] = i
|
|
return result
|
|
|
|
# Creating the `ref` arrays triggers copy-on-write
|
|
|
|
const ITERATIONS = 1_000_000
|
|
|
|
var array_10 := create_array(10)
|
|
var array_ref_10 := array_10
|
|
|
|
var array_100 := create_array(100)
|
|
var array_ref_100 := array_100
|
|
|
|
func benchmark_reverse() -> void:
|
|
for i in ITERATIONS:
|
|
array_10.reverse()
|
|
|
|
func benchmark_bsearch() -> void:
|
|
for i in ITERATIONS:
|
|
var index := array_10.bsearch(array_10[i % array_10.size()])
|
|
assert(index != -1, "Invalid index could have unexpected results.")
|
|
|
|
func benchmark_append_array() -> void:
|
|
for i in ITERATIONS:
|
|
array_100.append_array(array_10)
|
|
|
|
func benchmark_fill() -> void:
|
|
for i in ITERATIONS:
|
|
array_10.fill(100 + i)
|