mirror of
https://github.com/godotengine/godot-benchmarks.git
synced 2026-01-04 06:10:04 +03:00
Add Array function benchmarks (#75)
This commit is contained in:
35
benchmarks/core/array.gd
Normal file
35
benchmarks/core/array.gd
Normal file
@@ -0,0 +1,35 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user