[Swift] Improves vectors performance & arrays within lib (#8415)

* Improves vectors performance and adds a benchmark to vectors of offsets in swift

Improves performance for all arrays and for loops

Uses a tuple instead of allocating a struct each time we start iterating over fieldloc

Updates benchmark library

* Fixing swift Wasm ci
This commit is contained in:
mustiikhalil
2024-11-19 07:02:47 +01:00
committed by GitHub
parent a9df44828d
commit 1f4a9038ce
7 changed files with 65 additions and 47 deletions

View File

@@ -178,4 +178,24 @@ let benchmarks = {
let root = Offset(offset: fb.endTable(at: start))
fb.finish(offset: root)
}
Benchmark("Vector of Offsets") { benchmark in
let rawSize = ((16 * 5) * benchmark.scaledIterations.count) / 1024
var fb = FlatBufferBuilder(initialSize: Int32(rawSize * 1600))
benchmark.startMeasurement()
for _ in benchmark.scaledIterations {
let offsets = [
fb.create(string: "T"),
fb.create(string: "2"),
fb.create(string: "3"),
]
let off = fb.createVector(ofOffsets: [
fb.createVector(ofOffsets: offsets),
fb.createVector(ofOffsets: offsets),
])
let s = fb.startTable(with: 2)
fb.add(offset: off, at: 2)
blackHole(fb.endTable(at: s))
}
}
}

View File

@@ -26,7 +26,7 @@ let package = Package(
.package(path: "../.."),
.package(
url: "https://github.com/ordo-one/package-benchmark",
from: "1.12.0"),
from: "1.27.0"),
],
targets: [
.executableTarget(