@@ -20,7 +20,7 @@ let t: [BenchmarkCategory] = [.validation, .api, .String]
20
20
public let AngryPhonebook = [
21
21
BenchmarkInfo (
22
22
name: " AngryPhonebook " ,
23
- runFunction: { angryPhonebook ( $0 , words ) } ,
23
+ runFunction: run_AngryPhonebook ,
24
24
tags: t,
25
25
legacyFactor: 7 ) ,
26
26
BenchmarkInfo (
@@ -47,19 +47,31 @@ let words = [
47
47
" Joshua " , " Kevin " , " Ronald " , " Timothy " , " Jason " , " Jeffrey " , " Gary " , " Ryan " ,
48
48
" Nicholas " , " Eric " , " Stephen " , " Jacob " , " Larry " , " Frank " ]
49
49
50
+ @inline ( never)
51
+ public func run_AngryPhonebook( _ N: Int ) {
52
+ // Permute the names.
53
+ for _ in 1 ... N {
54
+ for firstname in words {
55
+ for lastname in words {
56
+ _ = ( firstname. uppercased ( ) , lastname. lowercased ( ) )
57
+ }
58
+ }
59
+ }
60
+ }
61
+
50
62
// Workloads for various scripts. Always 20 names for 400 pairings.
51
63
// To keep the performance of various scripts roughly comparable, aim for
52
64
// a total length of approximately 120 characters.
53
65
// E.g.: `latin.joined(separator: "").count == 124`
54
66
55
67
let latin = Array ( words. prefix ( 20 ) )
56
68
57
- let armenian : [ String ] = [
69
+ let armenian = [
58
70
" Արմեն " , " Աննա " , " Հարութ " , " Միքայել " , " Մարիա " , " Դավիթ " , " Վարդան " ,
59
71
" Նարինե " , " Տիգրան " , " Տաթևիկ " , " Թագուհի " , " Թամարա " , " Ազնաուր " , " Գրիգոր " ,
60
72
" Կոմիտաս " , " Հայկ " , " Գառնիկ " , " Վահրամ " , " Վահագն " , " Գևորգ " ]
61
73
62
- let cyrillic : [ String ] = [
74
+ let cyrillic = [
63
75
" Ульяна " , " Аркадий " , " Аня " , " Даниил " , " Дмитрий " , " Эдуард " , " Юрій " , " Давид " ,
64
76
" Анна " , " Дмитрий " , " Евгений " , " Борис " , " Ксения " , " Артур " , " Аполлон " ,
65
77
" Соломон " , " Николай " , " Кристи " , " Надежда " , " Спартак " ]
0 commit comments