Bug 1395527 part 1 - Add microbenchmarks for IsASCII and IsUTF8. r=froydnj

MozReview-Commit-ID: 3oploVISQ3F

--HG--
extra : rebase_source : 08d184e9b09a6375f6c6ace2b3511d39e9b36691
This commit is contained in:
Henri Sivonen 2017-08-31 14:46:25 +03:00
parent 5f8d9be3f0
commit 3e8b6b5f47

View File

@ -1355,4 +1355,69 @@ MOZ_GTEST_BENCH(Strings, PerfStripCharsCRLF, [] {
}
});
// Setup overhead test
#define OneASCII "a"
// Maximal non-SIMD legth
#define FifteenASCII "Lorem ipsum dol"
// Around hundred is common length for IsUTF8 check
#define HundredASCII "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis ac tellus eget velit viverra viverra i"
MOZ_GTEST_BENCH(Strings, PerfIsUTF8One, [] {
nsCString test(OneASCII);
for (int i = 0; i < 200000; i++) {
IsUTF8(test);
}
});
MOZ_GTEST_BENCH(Strings, PerfIsUTF8Fifteen, [] {
nsCString test(FifteenASCII);
for (int i = 0; i < 200000; i++) {
IsUTF8(test);
}
});
MOZ_GTEST_BENCH(Strings, PerfIsUTF8Hundred, [] {
nsCString test(HundredASCII);
for (int i = 0; i < 200000; i++) {
IsUTF8(test);
}
});
MOZ_GTEST_BENCH(Strings, PerfIsUTF8Example3, [] {
nsCString test(TestExample3);
for (int i = 0; i < 100000; i++) {
IsUTF8(test);
}
});
MOZ_GTEST_BENCH(Strings, PerfIsASCII8One, [] {
nsCString test(OneASCII);
for (int i = 0; i < 200000; i++) {
IsASCII(test);
}
});
MOZ_GTEST_BENCH(Strings, PerfIsASCIIFifteen, [] {
nsCString test(FifteenASCII);
for (int i = 0; i < 200000; i++) {
IsASCII(test);
}
});
MOZ_GTEST_BENCH(Strings, PerfIsASCIIHundred, [] {
nsCString test(HundredASCII);
for (int i = 0; i < 200000; i++) {
IsASCII(test);
}
});
MOZ_GTEST_BENCH(Strings, PerfIsASCIIExample3, [] {
nsCString test(TestExample3);
for (int i = 0; i < 100000; i++) {
IsUTF8(test);
}
});
} // namespace TestStrings