Skip to content

Commit ba25afb

Browse files
committed
[benchmark] ObjectiveCBridgingStubs Legacy Factor
1 parent d776ad5 commit ba25afb

File tree

1 file changed

+70
-28
lines changed

1 file changed

+70
-28
lines changed

benchmark/single-source/ObjectiveCBridgingStubs.swift

Lines changed: 70 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,70 @@ import Foundation
1616
import ObjectiveCTests
1717
#endif
1818

19+
let t: [BenchmarkCategory] = [.validation, .bridging]
20+
let ts: [BenchmarkCategory] = [.validation, .String, .bridging]
21+
1922
public let ObjectiveCBridgingStubs = [
20-
BenchmarkInfo(name: "ObjectiveCBridgeStubDataAppend", runFunction: run_ObjectiveCBridgeStubDataAppend, tags: [.validation, .bridging]),
21-
BenchmarkInfo(name: "ObjectiveCBridgeStubDateAccess", runFunction: run_ObjectiveCBridgeStubDateAccess, tags: [.validation, .bridging, .unstable]),
22-
BenchmarkInfo(name: "ObjectiveCBridgeStubDateMutation", runFunction: run_ObjectiveCBridgeStubDateMutation, tags: [.validation, .bridging]),
23-
BenchmarkInfo(name: "ObjectiveCBridgeStubFromArrayOfNSString2", runFunction: run_ObjectiveCBridgeStubFromArrayOfNSString, tags: [.validation, .bridging]),
24-
BenchmarkInfo(name: "ObjectiveCBridgeStubFromNSDate", runFunction: run_ObjectiveCBridgeStubFromNSDate, tags: [.validation, .bridging, .unstable]),
25-
BenchmarkInfo(name: "ObjectiveCBridgeStubFromNSString", runFunction: run_ObjectiveCBridgeStubFromNSString, tags: [.validation, .bridging]),
26-
BenchmarkInfo(name: "ObjectiveCBridgeStubToArrayOfNSString2", runFunction: run_ObjectiveCBridgeStubToArrayOfNSString, tags: [.validation, .bridging]),
27-
BenchmarkInfo(name: "ObjectiveCBridgeStubToNSDate2", runFunction: run_ObjectiveCBridgeStubToNSDate, tags: [.validation, .bridging]),
28-
BenchmarkInfo(name: "ObjectiveCBridgeStubToNSString", runFunction: run_ObjectiveCBridgeStubToNSString, tags: [.validation, .bridging]),
29-
BenchmarkInfo(name: "ObjectiveCBridgeStubURLAppendPath2", runFunction: run_ObjectiveCBridgeStubURLAppendPath, tags: [.validation, .bridging]),
30-
BenchmarkInfo(name: "ObjectiveCBridgeStringIsEqual", runFunction: run_ObjectiveCBridgeStringIsEqual, tags: [.validation, .String, .bridging], setUpFunction: setup_StringBridgeBenchmark),
31-
BenchmarkInfo(name: "ObjectiveCBridgeStringIsEqual2", runFunction: run_ObjectiveCBridgeStringIsEqual2, tags: [.validation, .String, .bridging], setUpFunction: setup_StringBridgeBenchmark),
32-
BenchmarkInfo(name: "ObjectiveCBridgeStringIsEqualAllSwift", runFunction: run_ObjectiveCBridgeStringIsEqualAllSwift, tags: [.validation, .String, .bridging], setUpFunction: setup_StringBridgeBenchmark),
33-
BenchmarkInfo(name: "ObjectiveCBridgeStringCompare", runFunction: run_ObjectiveCBridgeStringCompare, tags: [.validation, .String, .bridging], setUpFunction: setup_StringBridgeBenchmark),
34-
BenchmarkInfo(name: "ObjectiveCBridgeStringCompare2", runFunction: run_ObjectiveCBridgeStringCompare2, tags: [.validation, .String, .bridging], setUpFunction: setup_StringBridgeBenchmark),
35-
BenchmarkInfo(name: "ObjectiveCBridgeStringGetASCIIContents", runFunction: run_ObjectiveCBridgeStringGetASCIIContents, tags: [.validation, .String, .bridging], setUpFunction: setup_StringBridgeBenchmark),
36-
BenchmarkInfo(name: "ObjectiveCBridgeStringGetUTF8Contents", runFunction: run_ObjectiveCBridgeStringGetUTF8Contents, tags: [.validation, .String, .bridging], setUpFunction: setup_StringBridgeBenchmark),
37-
BenchmarkInfo(name: "ObjectiveCBridgeStringRangeOfString", runFunction: run_ObjectiveCBridgeStringRangeOfString, tags: [.validation, .String, .bridging], setUpFunction: setup_StringBridgeBenchmark),
38-
BenchmarkInfo(name: "ObjectiveCBridgeStringHash", runFunction: run_ObjectiveCBridgeStringHash, tags: [.validation, .String, .bridging], setUpFunction: setup_StringBridgeBenchmark),
39-
BenchmarkInfo(name: "ObjectiveCBridgeStringUTF8String", runFunction: run_ObjectiveCBridgeStringUTF8String, tags: [.validation, .String, .bridging], setUpFunction: setup_StringBridgeBenchmark),
40-
BenchmarkInfo(name: "ObjectiveCBridgeStringCStringUsingEncoding", runFunction: run_ObjectiveCBridgeStringCStringUsingEncoding, tags: [.validation, .String, .bridging], setUpFunction: setup_StringBridgeBenchmark),
23+
BenchmarkInfo(name: "ObjectiveCBridgeStubDataAppend",
24+
runFunction: run_ObjectiveCBridgeStubDataAppend, tags: t,
25+
legacyFactor: 20),
26+
BenchmarkInfo(name: "ObjectiveCBridgeStubDateAccess",
27+
runFunction: run_ObjectiveCBridgeStubDateAccess, tags: t),
28+
BenchmarkInfo(name: "ObjectiveCBridgeStubDateMutation",
29+
runFunction: run_ObjectiveCBridgeStubDateMutation, tags: t),
30+
BenchmarkInfo(name: "ObjectiveCBridgeStubFromArrayOfNSString2",
31+
runFunction: run_ObjectiveCBridgeStubFromArrayOfNSString, tags: t,
32+
legacyFactor: 10),
33+
BenchmarkInfo(name: "ObjectiveCBridgeStubFromNSDate",
34+
runFunction: run_ObjectiveCBridgeStubFromNSDate, tags: t,
35+
legacyFactor: 10),
36+
BenchmarkInfo(name: "ObjectiveCBridgeStubFromNSString",
37+
runFunction: run_ObjectiveCBridgeStubFromNSString, tags: t),
38+
BenchmarkInfo(name: "ObjectiveCBridgeStubToArrayOfNSString2",
39+
runFunction: run_ObjectiveCBridgeStubToArrayOfNSString, tags: t,
40+
legacyFactor: 20),
41+
BenchmarkInfo(name: "ObjectiveCBridgeStubToNSDate2",
42+
runFunction: run_ObjectiveCBridgeStubToNSDate, tags: t,
43+
legacyFactor: 10),
44+
BenchmarkInfo(name: "ObjectiveCBridgeStubToNSString",
45+
runFunction: run_ObjectiveCBridgeStubToNSString, tags: t,
46+
legacyFactor: 10),
47+
BenchmarkInfo(name: "ObjectiveCBridgeStubURLAppendPath2",
48+
runFunction: run_ObjectiveCBridgeStubURLAppendPath, tags: t,
49+
legacyFactor: 10),
50+
BenchmarkInfo(name: "ObjectiveCBridgeStringIsEqual",
51+
runFunction: run_ObjectiveCBridgeStringIsEqual, tags: ts,
52+
setUpFunction: setup_StringBridgeBenchmark),
53+
BenchmarkInfo(name: "ObjectiveCBridgeStringIsEqual2",
54+
runFunction: run_ObjectiveCBridgeStringIsEqual2, tags: ts,
55+
setUpFunction: setup_StringBridgeBenchmark),
56+
BenchmarkInfo(name: "ObjectiveCBridgeStringIsEqualAllSwift",
57+
runFunction: run_ObjectiveCBridgeStringIsEqualAllSwift, tags: ts,
58+
setUpFunction: setup_StringBridgeBenchmark),
59+
BenchmarkInfo(name: "ObjectiveCBridgeStringCompare",
60+
runFunction: run_ObjectiveCBridgeStringCompare, tags: ts,
61+
setUpFunction: setup_StringBridgeBenchmark),
62+
BenchmarkInfo(name: "ObjectiveCBridgeStringCompare2",
63+
runFunction: run_ObjectiveCBridgeStringCompare2, tags: ts,
64+
setUpFunction: setup_StringBridgeBenchmark),
65+
BenchmarkInfo(name: "ObjectiveCBridgeStringGetASCIIContents",
66+
runFunction: run_ObjectiveCBridgeStringGetASCIIContents, tags: ts,
67+
setUpFunction: setup_StringBridgeBenchmark),
68+
BenchmarkInfo(name: "ObjectiveCBridgeStringGetUTF8Contents",
69+
runFunction: run_ObjectiveCBridgeStringGetUTF8Contents, tags: ts,
70+
setUpFunction: setup_StringBridgeBenchmark),
71+
BenchmarkInfo(name: "ObjectiveCBridgeStringRangeOfString",
72+
runFunction: run_ObjectiveCBridgeStringRangeOfString, tags: ts,
73+
setUpFunction: setup_StringBridgeBenchmark),
74+
BenchmarkInfo(name: "ObjectiveCBridgeStringHash",
75+
runFunction: run_ObjectiveCBridgeStringHash, tags: ts,
76+
setUpFunction: setup_StringBridgeBenchmark),
77+
BenchmarkInfo(name: "ObjectiveCBridgeStringUTF8String",
78+
runFunction: run_ObjectiveCBridgeStringUTF8String, tags: ts,
79+
setUpFunction: setup_StringBridgeBenchmark),
80+
BenchmarkInfo(name: "ObjectiveCBridgeStringCStringUsingEncoding",
81+
runFunction: run_ObjectiveCBridgeStringCStringUsingEncoding, tags: ts,
82+
setUpFunction: setup_StringBridgeBenchmark),
4183
]
4284

4385
var b:BridgeTester! = nil
@@ -71,7 +113,7 @@ public func run_ObjectiveCBridgeStubFromNSString(_ N: Int) {
71113
func testObjectiveCBridgeStubToNSString() {
72114
let b = BridgeTester()
73115
let str = "hello world"
74-
for _ in 0 ..< 10_000 {
116+
for _ in 0 ..< 1_000 {
75117
b.test(from: str)
76118
}
77119
}
@@ -93,7 +135,7 @@ func testObjectiveCBridgeStubFromArrayOfNSString() {
93135
let b = BridgeTester()
94136
var arr : [String] = []
95137
var str = ""
96-
for _ in 0 ..< 1_000 {
138+
for _ in 0 ..< 100 {
97139
arr = b.testToArrayOfStrings()
98140
str = arr[0]
99141
}
@@ -117,7 +159,7 @@ func testObjectiveCBridgeStubToArrayOfNSString() {
117159
let b = BridgeTester()
118160
let str = "hello world"
119161
let arr = [str, str, str, str, str, str, str, str, str, str]
120-
for _ in 0 ..< 1_000 {
162+
for _ in 0 ..< 50 {
121163
b.test(fromArrayOf: arr)
122164
}
123165
}
@@ -139,7 +181,7 @@ public func run_ObjectiveCBridgeStubToArrayOfNSString(_ N: Int) {
139181
func testObjectiveCBridgeStubFromNSDate() {
140182
let b = BridgeTester()
141183

142-
for _ in 0 ..< 100_000 {
184+
for _ in 0 ..< 10_000 {
143185
let bridgedBegin = b.beginDate()
144186
let bridgedEnd = b.endDate()
145187
let _ = bridgedEnd.timeIntervalSince(bridgedBegin)
@@ -172,7 +214,7 @@ public func testObjectiveCBridgeStubToNSDate() {
172214
@inline(never)
173215
public func run_ObjectiveCBridgeStubToNSDate(N: Int) {
174216
#if _runtime(_ObjC)
175-
for _ in 0 ..< 10 * N {
217+
for _ in 0 ..< N {
176218
autoreleasepool {
177219
testObjectiveCBridgeStubToNSDate()
178220
}
@@ -227,7 +269,7 @@ public func run_ObjectiveCBridgeStubDateMutation(N: Int) {
227269
@inline(never)
228270
func testObjectiveCBridgeStubURLAppendPath() {
229271
let startUrl = URL(string: "/")!
230-
for _ in 0 ..< 100 {
272+
for _ in 0 ..< 10 {
231273
var url = startUrl
232274
for _ in 0 ..< 10 {
233275
url.appendPathComponent("foo")
@@ -252,7 +294,7 @@ public func run_ObjectiveCBridgeStubURLAppendPath(N: Int) {
252294
func testObjectiveCBridgeStubDataAppend() {
253295
let proto = Data()
254296
var value: UInt8 = 1
255-
for _ in 0 ..< 1_000 {
297+
for _ in 0 ..< 50 {
256298
var d = proto
257299
for _ in 0 ..< 100 {
258300
d.append(&value, count: 1)

0 commit comments

Comments
 (0)