Skip to content

Commit

Permalink
✨ πŸ“ Updated benchmark numbers
Browse files Browse the repository at this point in the history
β€” πŸ›  Fix non-constexpr mutability issue
  • Loading branch information
ThePhD committed Dec 23, 2022
1 parent d0f6290 commit fa8d465
Show file tree
Hide file tree
Showing 57 changed files with 686 additions and 686 deletions.
4 changes: 2 additions & 2 deletions documentation/source/benchmarks.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ Below is a all of the benchmarks currently conducted and built-in to the code of

The specification for these benchmarks is as follows:

- The latest of each library was used as of 21 October, 2022.
- The latest of each library was used as of 23 December, 2022.
- Windows 10 Pro machine, general user processes running in the background (but machine not being used).
- AMD Ryzen 5 3600 6-Core @ 3600 MHz (12 Logcal Processors), 32.0 GB Physical Memory
- Clang 15.0.2, latest available Clang at the time of generation with MSVC ABI.
- Clang 15.0.3, latest available Clang at the time of generation with MSVC ABI.
- Entire software stack for every dependency build under default CMake flags (including ICU and libiconv from vcpkg).
- Anywhere from 150 to 10million samples per iteration, with mean (average) of 100 iterations forming transparent dots on graph.
- Each bar graph is mean of the 100 iterations, with provided standard deviation-based error bars.
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -5,58 +5,58 @@ There are 29 groups, and 2 data labels (cpu time, real time) per each group with
- boost_text_view is 29th. Described as: "Measures the boost.text library from Zach laine and its encoding routines, partocularly the one-at-a-time views that can be fed into C and C++ algorithms using the view's iterator abstraction.".
This group had an error: "conversion succeeded but produced illegitimate data".
- standard_c is 28th. Described as: "Measures the <uchar.h>, <wchar.h>, and similar functionality present in the C standard library.".
Measures to a mean of "2.393340921424429" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "2.37753512310491" milliseconds, from 100 multi-iteration samples.
- iconv is 27th. Described as: "Measures the libiconv (GNU version) encoding library, using its POSIX-compliant function call "iconv".".
Measures to a mean of "0.6268700205348848" milliseconds, from 100 multi-iteration samples.
- cuneicode_single is 26th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the typed, non-generic C-style encoding routines that use the "indivisable unit fo conversion" functions.".
Measures to a mean of "0.4114553395343666" milliseconds, from 100 multi-iteration samples.
- cuneicode is 25th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the typed, non-generic C-style encoding routines.".
Measures to a mean of "0.4093142808132418" milliseconds, from 100 multi-iteration samples.
- icu_ucnv_convertEx is 24th. Described as: "Measures the ICU library and its conversion routines when routed through 2 generic "UConverter" converter objects.".
Measures to a mean of "0.39651378268095044" milliseconds, from 100 multi-iteration samples.
- cuneicode_unbounded is 23rd. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the typed, non-generic C-style encoding routines (without providing an output size).".
Measures to a mean of "0.36806820695292214" milliseconds, from 100 multi-iteration samples.
- cuneicode_single_unbounded is 22nd. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the typed, non-generic C-style encoding routines "indivisable unit fo conversion" functions (without providing an output size).".
Measures to a mean of "0.36374090717947233" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.6345017249966207" milliseconds, from 100 multi-iteration samples.
- icu_ucnv_convertEx is 26th. Described as: "Measures the ICU library and its conversion routines when routed through 2 generic "UConverter" converter objects.".
Measures to a mean of "0.40523252457929204" milliseconds, from 100 multi-iteration samples.
- cuneicode_single is 25th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the typed, non-generic C-style encoding routines that use the "indivisable unit fo conversion" functions.".
Measures to a mean of "0.3926279888307551" milliseconds, from 100 multi-iteration samples.
- cuneicode is 24th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the typed, non-generic C-style encoding routines.".
Measures to a mean of "0.39080834534793535" milliseconds, from 100 multi-iteration samples.
- cuneicode_single_unbounded is 23rd. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the typed, non-generic C-style encoding routines "indivisable unit fo conversion" functions (without providing an output size).".
Measures to a mean of "0.37603956201001904" milliseconds, from 100 multi-iteration samples.
- cuneicode_unbounded is 22nd. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the typed, non-generic C-style encoding routines (without providing an output size).".
Measures to a mean of "0.3646489882332467" milliseconds, from 100 multi-iteration samples.
- standard_cpp is 21st. Described as: "Measures the deprecated std::codecvt_* functionality present in the C++ standard library.".
Measures to a mean of "0.2740698020063679" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.28588962289140035" milliseconds, from 100 multi-iteration samples.
- icu_ucnv_fromUChars is 20th. Described as: "Measures the ICU library conversion routine using the specific ucnv_fromUChars function.".
Measures to a mean of "0.2187811421874358" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.22332897562737344" milliseconds, from 100 multi-iteration samples.
- ztd_text_view is 19th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode_view range abstraction.".
Measures to a mean of "0.1881057635389285" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry is 18th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the non-typed conversion routines from its Conversion Registry abstraction with all defaults left alone.".
Measures to a mean of "0.17203635625043848" milliseconds, from 100 multi-iteration samples.
- ztd_text is 17th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode function.".
Measures to a mean of "0.1699907904180054" milliseconds, from 100 multi-iteration samples.
- ztd_text_single is 16th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode_one function.".
Measures to a mean of "0.1687574071254889" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry_unchecked is 15th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the non-typed conversion routines from its Conversion Registry abstraction with all defaults left alone (without checking for the validity of the input).".
Measures to a mean of "0.15971716026784374" milliseconds, from 100 multi-iteration samples.
- ztd_text_single_unbounded is 14th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode_one function in a loop, with output bounds checking turned off.".
Measures to a mean of "0.15924952544634965" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.2184343278269702" milliseconds, from 100 multi-iteration samples.
- ztd_text_single is 18th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode_one function.".
Measures to a mean of "0.21671283874929942" milliseconds, from 100 multi-iteration samples.
- ztd_text_single_unbounded is 17th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode_one function in a loop, with output bounds checking turned off.".
Measures to a mean of "0.1885978823053918" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry is 16th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the non-typed conversion routines from its Conversion Registry abstraction with all defaults left alone.".
Measures to a mean of "0.17512220442203547" milliseconds, from 100 multi-iteration samples.
- ztd_text is 15th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode function.".
Measures to a mean of "0.1715059491398994" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry_unchecked is 14th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the non-typed conversion routines from its Conversion Registry abstraction with all defaults left alone (without checking for the validity of the input).".
Measures to a mean of "0.16364037968768183" milliseconds, from 100 multi-iteration samples.
- ztd_text_unchecked is 13th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode function.".
Measures to a mean of "0.15900803727683005" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.1620387283458383" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry_unbounded is 12th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the non-typed conversion routines from its Conversion Registry abstraction with specific conversion pathways overridden (without providing an output size).".
Measures to a mean of "0.1573835908478551" milliseconds, from 100 multi-iteration samples.
- ztd_text_unbounded is 11th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode function, with output bounds checking turned off.".
Measures to a mean of "0.15608589196786654" milliseconds, from 100 multi-iteration samples.
- boost_text is 10th. Described as: "Measures the boost.text library from Zach Laine and its encoding routines, particularly the all-at-once bulk routines.".
Measures to a mean of "0.15458647665862024" milliseconds, from 100 multi-iteration samples.
- simdutf_unchecked is 9th. Described as: "Measures the performance of Daniel Lemire's simdutf library, which is meant to be highly optimized and performant under all unicode workloads.".
Measures to a mean of "0.15352468574305073" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.16034693156398136" milliseconds, from 100 multi-iteration samples.
- simdutf_unchecked is 11th. Described as: "Measures the performance of Daniel Lemire's simdutf library, which is meant to be highly optimized and performant under all unicode workloads.".
Measures to a mean of "0.1580837669646696" milliseconds, from 100 multi-iteration samples.
- ztd_text_unbounded is 10th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode function, with output bounds checking turned off.".
Measures to a mean of "0.15754436964276206" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry_unchecked_unbounded is 9th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the non-typed conversion routines from its Conversion Registry abstraction with specific conversion pathways overridden (without providing an output size, and without checking input validity).".
Measures to a mean of "0.15499439932994263" milliseconds, from 100 multi-iteration samples.
- ztd_text_unbounded_unchecked is 8th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode function, with output bounds checking turned off.".
Measures to a mean of "0.15313754919686134" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry_unchecked_unbounded is 7th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the non-typed conversion routines from its Conversion Registry abstraction with specific conversion pathways overridden (without providing an output size, and without checking input validity).".
Measures to a mean of "0.15301498353418644" milliseconds, from 100 multi-iteration samples.
- simdutf is 6th. Described as: "Measures the performance of Daniel Lemire's simdutf library, which is meant to be highly optimized and performant under all unicode workloads.".
Measures to a mean of "0.15224484919701764" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.15455586674059826" milliseconds, from 100 multi-iteration samples.
- simdutf is 7th. Described as: "Measures the performance of Daniel Lemire's simdutf library, which is meant to be highly optimized and performant under all unicode workloads.".
Measures to a mean of "0.15421008705405778" milliseconds, from 100 multi-iteration samples.
- boost_text is 6th. Described as: "Measures the boost.text library from Zach Laine and its encoding routines, particularly the all-at-once bulk routines.".
Measures to a mean of "0.15283101130361584" milliseconds, from 100 multi-iteration samples.
- ztd_text_view_unchecked is 5th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode_view range abstraction.".
Measures to a mean of "0.11514337281241752" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.12312083250035358" milliseconds, from 100 multi-iteration samples.
- ztd_text_single_unchecked is 4th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode_one function.".
Measures to a mean of "0.108751218125326" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.11545473359255994" milliseconds, from 100 multi-iteration samples.
- ztd_text_single_unbounded_unchecked is 3rd. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode_one function in a loop, with output bounds checking turned off.".
Measures to a mean of "0.10725408140651779" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.11477970796822776" milliseconds, from 100 multi-iteration samples.
- memcpy is 2nd. It has no description.
Measures to a mean of "0.017587329413416064" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.017605862116322" milliseconds, from 100 multi-iteration samples.
- noop is 1st. Described as: "Measures doing literally nothing (no written expressions/statements in the benchmarking loop). Can be useful for determining potential environment noise.".
Measures to a mean of "1.7200043657794594e-14" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "1.6999780200421812e-14" milliseconds, from 100 multi-iteration samples.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@ Title: "All Unicode Scalar Values - UTF-16 to UTF-32 (Well-Formed, with Init)".
There are 9 groups, and 2 data labels (cpu time, real time) per each group with data. Lower is better.

- iconv is 9th. Described as: "Measures the libiconv (GNU version) encoding library, using its POSIX-compliant function call "iconv".".
Measures to a mean of "0.6328860821457576" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.630799646432154" milliseconds, from 100 multi-iteration samples.
- icu_ucnv_convertEx is 8th. Described as: "Measures the ICU library and its conversion routines when routed through 2 generic "UConverter" converter objects.".
Measures to a mean of "0.39885412737455317" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.4095466941876641" milliseconds, from 100 multi-iteration samples.
- standard_cpp is 7th. Described as: "Measures the deprecated std::codecvt_* functionality present in the C++ standard library.".
Measures to a mean of "0.27059962245723496" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.2847675759047008" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry is 6th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the non-typed conversion routines from its Conversion Registry abstraction with all defaults left alone.".
Measures to a mean of "0.17391354275217477" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.18033347371078948" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry_unchecked is 5th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the non-typed conversion routines from its Conversion Registry abstraction with all defaults left alone (without checking for the validity of the input).".
Measures to a mean of "0.16398405558051568" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.1655264995541594" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry_unbounded is 4th. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the non-typed conversion routines from its Conversion Registry abstraction with specific conversion pathways overridden (without providing an output size).".
Measures to a mean of "0.15946659263356977" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.1622493965619905" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry_unchecked_unbounded is 3rd. Described as: "Measures the ztd.cuneicode library from Shepherd's Oasis and its encoding routines, particularly the non-typed conversion routines from its Conversion Registry abstraction with specific conversion pathways overridden (without providing an output size, and without checking input validity).".
Measures to a mean of "0.15818775290179996" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.15859257592075948" milliseconds, from 100 multi-iteration samples.
- memcpy is 2nd. It has no description.
Measures to a mean of "0.017575448195429944" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.01761866400677783" milliseconds, from 100 multi-iteration samples.
- noop is 1st. Described as: "Measures doing literally nothing (no written expressions/statements in the benchmarking loop). Can be useful for determining potential environment noise.".
Measures to a mean of "1.7200043657794594e-14" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "1.6999780200421812e-14" milliseconds, from 100 multi-iteration samples.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit fa8d465

Please sign in to comment.