Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork2
ICU performance test results. Maintained by ICU-TC
License
unicode-org/icu-perf
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
ICU performance test results. Maintained by ICU-TC.
The performance tests execution and time measurment is a layered process.
- API invocation iteration: A performance test invocation for an API undertests iterates over the full test data and calls the API once for each testdata item. The test data item can be a character, word, line, or theentirety of the test data.
- Loops: Calibration runs determine how many of the API invocation iterationscan be executed within a given time, typically 5 seconds. The resultingnumber is called loops.
- Passes: Pre-defined number of performance test tries, typically ten passes.At each pass the API invocation iteration is executed in loops as often asdetermined by the calibration.
- Test data: the test data for all ICU character property APIs are all codepoints from x0 to x10FFFF, i.e. 1,114,112 code points.Each API invocation iteration iterates 1,114,112 times and calls isAlpha()once at each iteration with the respective code point.
- Loops: For illustration, let's assume that the calibration phase determinesthat the above 1,114,112 iterations can be repeated 1,600 times within5 seconds.
- Passes: Each pass runs 1,600 loops of 1,114,112 iterations and records theexecution time of the 1,600 loops. If the number of passes is set to 10,we get 10 performance numbers.
- Final calculation: The minimum number among the passes is selected anddivided by loops*iterations.In this example: "minimum pass"/(1,600 * 1,114,112). The result is the averageexecution time of one call of isAlpha() from the fastest pass.
The performance tests are all run on Ubuntu and broken out by feature.
CharperfPerformance tests for character property APIs, cf. the charts.The measured time is for one call of the respective character property API.
UtfperfPerformance tests for Unicode converters: ucnv_fromUnicode(),ucnv_toUnicode(), ucnv_convertEx().The measured time is processing time of a codepoint in the input string.
UsetperfPerformance tests for Uniset APIs add(), contains(),UnicodeSetIterator::get().Time measured is relative to the size of the USet, which is small(containing U_TITLECASE_LETTER characters) or large (containingU_UNASSIGNED codepoints).Also tests UnicodeSet::applyPattern() for three pre-defined pattern ofdifferent complexity.
The following performance tests are additionally broken out by type of testdata processed.
Collperf:Performance tests for the ICU collation feature. The time measuredis per line of the test data for the KeyGen test and for the entire operationof the two more complex qsort and BinarySearch test scenarios.
NormPerf:Performance tests for ICU normalization. The time measured is per characterfrom the test data.
Ustrperf:Performance tests for a variety of Unicode string functions or operators:constructors, assignments (setTo, =), charAt(), concatenate (+), indexOf().Time measured is per line of the test data.
Strsrchperf:Performance tests for usearch_next() and usearch_previous() for a variety oflocales and corresponding test data files.Time measured is per character in the test data file.
Copyright © 2022-2024 Unicode, Inc. Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the United States and other countries.
A CLA is required to contribute to this project - please refer to theCONTRIBUTING.md file (or start a Pull Request) for more information.
The contents of this repository are governed by the UnicodeTerms of Use and are released underLICENSE.
About
ICU performance test results. Maintained by ICU-TC
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.