Skip to content

Commit 6ee5745

Browse files
committed
[benchmark] Add Russian StringWalk variant (off by default)
1 parent 0a88de5 commit 6ee5745

File tree

3 files changed

+37
-1
lines changed

3 files changed

+37
-1
lines changed

benchmark/single-source/StringWalk.swift

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ let utf16 = emoji + "the quick brown fox" + String(emoji.reversed() as Array<Cha
6969
let japanese = "今回のアップデートでSwiftに大幅な改良が施され、安定していてしかも直感的に使うことができるAppleプラットフォーム向けプログラミング言語になりました。"
7070
let chinese = "Swift 是面向 Apple 平台的编程语言,功能强大且直观易用,而本次更新对其进行了全面优化。"
7171
let korean = "이번 업데이트에서는 강력하면서도 직관적인 Apple 플랫폼용 프로그래밍 언어인 Swift를 완벽히 개선하였습니다."
72+
let russian = "в чащах юга жил-был цитрус? да, но фальшивый экземпляр"
7273

7374
// A workload that's mostly Latin characters, with occasional emoji
7475
// interspersed. Common for tweets.
@@ -269,3 +270,33 @@ public func run_StringWalk_korean_characters_Backwards(_ N: Int) {
269270
}
270271
}
271272

273+
274+
@inline(never)
275+
public func run_StringWalk_russian_unicodeScalars(_ N: Int) {
276+
for _ in 1...unicodeScalarsMultiplier*N {
277+
count_unicodeScalars(russian.unicodeScalars)
278+
}
279+
}
280+
281+
@inline(never)
282+
public func run_StringWalk_russian_unicodeScalars_Backwards(_ N: Int) {
283+
for _ in 1...unicodeScalarsMultiplier*N {
284+
count_unicodeScalars_rev(russian.unicodeScalars.reversed())
285+
}
286+
}
287+
288+
289+
@inline(never)
290+
public func run_StringWalk_russian_characters(_ N: Int) {
291+
for _ in 1...charactersMultiplier*N {
292+
count_characters(russian.characters)
293+
}
294+
}
295+
296+
@inline(never)
297+
public func run_StringWalk_russian_characters_Backwards(_ N: Int) {
298+
for _ in 1...charactersMultiplier*N {
299+
count_characters_rev(russian.characters.reversed())
300+
}
301+
}
302+

benchmark/single-source/StringWalk.swift.gyb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ let utf16 = emoji + "the quick brown fox" + String(emoji.reversed() as Array<Cha
7070
let japanese = "今回のアップデートでSwiftに大幅な改良が施され、安定していてしかも直感的に使うことができるAppleプラットフォーム向けプログラミング言語になりました。"
7171
let chinese = "Swift 是面向 Apple 平台的编程语言,功能强大且直观易用,而本次更新对其进行了全面优化。"
7272
let korean = "이번 업데이트에서는 강력하면서도 직관적인 Apple 플랫폼용 프로그래밍 언어인 Swift를 완벽히 개선하였습니다."
73+
let russian = "в чащах юга жил-был цитрус? да, но фальшивый экземпляр"
7374

7475
// A workload that's mostly Latin characters, with occasional emoji
7576
// interspersed. Common for tweets.
@@ -90,7 +91,7 @@ let baseMultiplier = 10_000
9091
let unicodeScalarsMultiplier = baseMultiplier
9192
let charactersMultiplier = baseMultiplier / 5
9293

93-
% for Name in ["ascii", "utf16", "tweet", "japanese", "chinese", "korean"]:
94+
% for Name in ["ascii", "utf16", "tweet", "japanese", "chinese", "korean", "russian"]:
9495
% for Kind in ["unicodeScalars", "characters"]:
9596

9697
@inline(never)

benchmark/utils/main.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,10 @@ addTo(&stringTests, "StringWalk_korean_characters", run_StringWalk_korean_charac
531531
addTo(&stringTests, "StringWalk_korean_characters_Backwards", run_StringWalk_korean_characters_Backwards)
532532
addTo(&stringTests, "StringWalk_korean_unicodeScalars", run_StringWalk_korean_unicodeScalars)
533533
addTo(&stringTests, "StringWalk_korean_unicodeScalars_Backwards", run_StringWalk_korean_unicodeScalars_Backwards)
534+
addTo(&stringTests, "StringWalk_russian_characters", run_StringWalk_russian_characters)
535+
addTo(&stringTests, "StringWalk_russian_characters_Backwards", run_StringWalk_russian_characters_Backwards)
536+
addTo(&stringTests, "StringWalk_russian_unicodeScalars", run_StringWalk_russian_unicodeScalars)
537+
addTo(&stringTests, "StringWalk_russian_unicodeScalars_Backwards", run_StringWalk_russian_unicodeScalars_Backwards)
534538
addTo(&stringTests, "StringWalk_tweet_characters", run_StringWalk_tweet_characters)
535539
addTo(&stringTests, "StringWalk_tweet_characters_Backwards", run_StringWalk_tweet_characters_Backwards)
536540
addTo(&stringTests, "StringWalk_tweet_unicodeScalars", run_StringWalk_tweet_unicodeScalars)

0 commit comments

Comments
 (0)