@@ -16,28 +16,70 @@ import Foundation
16
16
import ObjectiveCTests
17
17
#endif
18
18
19
+ let t : [ BenchmarkCategory ] = [ . validation, . bridging]
20
+ let ts : [ BenchmarkCategory ] = [ . validation, . String, . bridging]
21
+
19
22
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) ,
41
83
]
42
84
43
85
var b : BridgeTester ! = nil
@@ -71,7 +113,7 @@ public func run_ObjectiveCBridgeStubFromNSString(_ N: Int) {
71
113
func testObjectiveCBridgeStubToNSString( ) {
72
114
let b = BridgeTester ( )
73
115
let str = " hello world "
74
- for _ in 0 ..< 10_000 {
116
+ for _ in 0 ..< 1_000 {
75
117
b. test ( from: str)
76
118
}
77
119
}
@@ -93,7 +135,7 @@ func testObjectiveCBridgeStubFromArrayOfNSString() {
93
135
let b = BridgeTester ( )
94
136
var arr : [ String ] = [ ]
95
137
var str = " "
96
- for _ in 0 ..< 1_000 {
138
+ for _ in 0 ..< 100 {
97
139
arr = b. testToArrayOfStrings ( )
98
140
str = arr [ 0 ]
99
141
}
@@ -117,7 +159,7 @@ func testObjectiveCBridgeStubToArrayOfNSString() {
117
159
let b = BridgeTester ( )
118
160
let str = " hello world "
119
161
let arr = [ str, str, str, str, str, str, str, str, str, str]
120
- for _ in 0 ..< 1_000 {
162
+ for _ in 0 ..< 50 {
121
163
b. test ( fromArrayOf: arr)
122
164
}
123
165
}
@@ -139,7 +181,7 @@ public func run_ObjectiveCBridgeStubToArrayOfNSString(_ N: Int) {
139
181
func testObjectiveCBridgeStubFromNSDate( ) {
140
182
let b = BridgeTester ( )
141
183
142
- for _ in 0 ..< 100_000 {
184
+ for _ in 0 ..< 10_000 {
143
185
let bridgedBegin = b. beginDate ( )
144
186
let bridgedEnd = b. endDate ( )
145
187
let _ = bridgedEnd. timeIntervalSince ( bridgedBegin)
@@ -172,7 +214,7 @@ public func testObjectiveCBridgeStubToNSDate() {
172
214
@inline ( never)
173
215
public func run_ObjectiveCBridgeStubToNSDate( N: Int ) {
174
216
#if _runtime(_ObjC)
175
- for _ in 0 ..< 10 * N {
217
+ for _ in 0 ..< N {
176
218
autoreleasepool {
177
219
testObjectiveCBridgeStubToNSDate ( )
178
220
}
@@ -227,7 +269,7 @@ public func run_ObjectiveCBridgeStubDateMutation(N: Int) {
227
269
@inline ( never)
228
270
func testObjectiveCBridgeStubURLAppendPath( ) {
229
271
let startUrl = URL ( string: " / " ) !
230
- for _ in 0 ..< 100 {
272
+ for _ in 0 ..< 10 {
231
273
var url = startUrl
232
274
for _ in 0 ..< 10 {
233
275
url. appendPathComponent ( " foo " )
@@ -252,7 +294,7 @@ public func run_ObjectiveCBridgeStubURLAppendPath(N: Int) {
252
294
func testObjectiveCBridgeStubDataAppend( ) {
253
295
let proto = Data ( )
254
296
var value : UInt8 = 1
255
- for _ in 0 ..< 1_000 {
297
+ for _ in 0 ..< 50 {
256
298
var d = proto
257
299
for _ in 0 ..< 100 {
258
300
d. append ( & value, count: 1 )
0 commit comments