Skip to content

Commit 03d9841

Browse files
committed
[benchmark] Extract setup from ArrayInClass
ArrayInClass had setup overhead of 88 μs (17%).
1 parent 53653de commit 03d9841

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

benchmark/single-source/ArrayInClass.swift

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ import TestsUtils
1414
public let ArrayInClass = BenchmarkInfo(
1515
name: "ArrayInClass",
1616
runFunction: run_ArrayInClass,
17-
tags: [.validation, .api, .Array])
17+
tags: [.validation, .api, .Array],
18+
setUpFunction: { ac = ArrayContainer() },
19+
tearDownFunction: { ac = nil })
20+
21+
var ac: ArrayContainer!
1822

1923
class ArrayContainer {
2024
final var arr : [Int]
@@ -32,13 +36,8 @@ class ArrayContainer {
3236
}
3337
}
3438

35-
@inline(never)
36-
func getArrayContainer() -> ArrayContainer {
37-
return ArrayContainer()
38-
}
39-
4039
@inline(never)
4140
public func run_ArrayInClass(_ N: Int) {
42-
let a = getArrayContainer()
41+
let a = ac!
4342
a.runLoop(N)
4443
}

0 commit comments

Comments
 (0)