Skip to content

Commit

Permalink
✨ New faux-environment test, similar to Honermann's e-mail request.
Browse files Browse the repository at this point in the history
  • Loading branch information
ThePhD committed Jan 7, 2023
1 parent 12fdcf2 commit 1dd6b98
Show file tree
Hide file tree
Showing 87 changed files with 1,409 additions and 999 deletions.
4 changes: 2 additions & 2 deletions benchmarks/conversion_speed/source/ztd.text.basic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
auto from_state = ztd::text::make_decode_state(ztd::text::utf##FROM_N); \
auto to_state = ztd::text::make_encode_state(ztd::text::utf##TO_N); \
ztd::text::pivot<ztd::span<ztd_char32_t>> pivot { ztd::span<ztd_char32_t>(__intermediate), \
ztd::text::encoding_error::ok }; \
ztd::text::encoding_error::ok, 0 }; \
auto err = ztd::text::basic_transcode_into_raw(ztd::span(input, input_size), ztd::text::utf##FROM_N, \
ztd::span(output, output_size), ztd::text::utf##TO_N, ztd::text::default_handler, \
ztd::text::default_handler, from_state, to_state, pivot); \
Expand Down Expand Up @@ -91,7 +91,7 @@
auto from_state = ztd::text::make_decode_state(ztd::text::utf##FROM_N); \
auto to_state = ztd::text::make_encode_state(ztd::text::utf##TO_N); \
ztd::text::pivot<ztd::span<ztd_char32_t>> pivot { ztd::span<ztd_char32_t>(__intermediate), \
ztd::text::encoding_error::ok }; \
ztd::text::encoding_error::ok, 0 }; \
auto err = ztd::text::basic_transcode_into_raw(ztd::span(input, input_size), ztd::text::utf##FROM_N, \
ztd::ranges::unbounded_view(output), ztd::text::utf##TO_N, ztd::text::default_handler, \
ztd::text::default_handler, from_state, to_state, pivot); \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
auto from_state = ztd::text::make_decode_state(ztd::text::utf##FROM_N); \
auto to_state = ztd::text::make_encode_state(ztd::text::utf##TO_N); \
ztd::text::pivot<ztd::span<ztd_char32_t>> pivot { ztd::span<ztd_char32_t>(__intermediate), \
ztd::text::encoding_error::ok }; \
ztd::text::encoding_error::ok, 0 }; \
auto err = ztd::text::basic_transcode_into_raw(ztd::span(input, input_size), ztd::text::utf##FROM_N, \
ztd::span(output, output_size), ztd::text::utf##TO_N, ztd::text::assume_valid_handler, \
ztd::text::assume_valid_handler, from_state, to_state, pivot); \
Expand Down Expand Up @@ -128,7 +128,7 @@
auto from_state = ztd::text::make_decode_state(ztd::text::utf##FROM_N); \
auto to_state = ztd::text::make_encode_state(ztd::text::utf##TO_N); \
ztd::text::pivot<ztd::span<ztd_char32_t>> pivot { ztd::span<ztd_char32_t>(__intermediate), \
ztd::text::encoding_error::ok }; \
ztd::text::encoding_error::ok, 0 }; \
auto err = ztd::text::basic_transcode_into_raw(ztd::span(input, input_size), ztd::text::utf##FROM_N, \
ztd::ranges::unbounded_view(output), ztd::text::utf##TO_N, ztd::text::assume_valid_handler, \
ztd::text::assume_valid_handler, from_state, to_state, pivot); \
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
@@ -1,62 +1,54 @@
Title: "All Unicode Scalar Values - UTF-16 to UTF-32 (Well-Formed)". Description: "A conversion from UTF-16 data to UTF-32 data that contains no ill-formed or incomplete sequences."

There are 29 groups, and 2 data labels (cpu time, real time) per each group with data. Lower is better.
There are 25 groups, and 2 data labels (cpu time, real time) per each group with data. Lower is better.

- 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.".
- boost_text_view is 25th. 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.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.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.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.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.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.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.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.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.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.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.11477970796822776" milliseconds, from 100 multi-iteration samples.
- standard_c is 24th. Described as: "Measures the <uchar.h>, <wchar.h>, and similar functionality present in the C standard library.".
Measures to a mean of "2.32202150997861" milliseconds, from 100 multi-iteration samples.
- iconv is 23rd. Described as: "Measures the libiconv (GNU version) encoding library, using its POSIX-compliant function call "iconv".".
Measures to a mean of "0.6219367830386285" milliseconds, from 100 multi-iteration samples.
- icu_ucnv_convertEx is 22nd. Described as: "Measures the ICU library and its conversion routines when routed through 2 generic "UConverter" converter objects.".
Measures to a mean of "0.4018713128414817" milliseconds, from 100 multi-iteration samples.
- cuneicode_single is 21st. 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.37259385455524263" milliseconds, from 100 multi-iteration samples.
- cuneicode is 20th. 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.3720916512875985" milliseconds, from 100 multi-iteration samples.
- cuneicode_single_unbounded is 19th. 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.36271733315138616" milliseconds, from 100 multi-iteration samples.
- cuneicode_unbounded is 18th. 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.3524711220477445" milliseconds, from 100 multi-iteration samples.
- standard_cpp is 17th. Described as: "Measures the deprecated std::codecvt_* functionality present in the C++ standard library.".
Measures to a mean of "0.28707740847041074" milliseconds, from 100 multi-iteration samples.
- icu_ucnv_fromUChars is 16th. Described as: "Measures the ICU library conversion routine using the specific ucnv_fromUChars function.".
Measures to a mean of "0.21884846964634824" milliseconds, from 100 multi-iteration samples.
- ztd_text_view is 15th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode_view range abstraction.".
Measures to a mean of "0.18795510348813962" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry 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.".
Measures to a mean of "0.168281598281486" milliseconds, from 100 multi-iteration samples.
- ztd_text is 13th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode function.".
Measures to a mean of "0.16823738280292463" milliseconds, from 100 multi-iteration samples.
- ztd_text_unchecked is 12th. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode function.".
Measures to a mean of "0.1583327323652546" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry_unchecked is 11th. 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.1583110515644616" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry_unbounded is 10th. 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.15446497210255725" milliseconds, from 100 multi-iteration samples.
- ztd_text_unbounded is 9th. 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.1543803589286524" milliseconds, from 100 multi-iteration samples.
- simdutf_unchecked is 8th. 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.15162352053812356" milliseconds, from 100 multi-iteration samples.
- ztd_text_unbounded_unchecked is 7th. 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.15160503058151725" milliseconds, from 100 multi-iteration samples.
- cuneicode_registry_unchecked_unbounded 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 specific conversion pathways overridden (without providing an output size, and without checking input validity).".
Measures to a mean of "0.15142173855565488" milliseconds, from 100 multi-iteration samples.
- simdutf is 5th. 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.15106421294383057" milliseconds, from 100 multi-iteration samples.
- boost_text is 4th. 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.14597452734284921" milliseconds, from 100 multi-iteration samples.
- ztd_text_view_unchecked is 3rd. Described as: "Measures the ztd.text library conversion routine using the ztd::text::transcode_view range abstraction.".
Measures to a mean of "0.13432872871565354" milliseconds, from 100 multi-iteration samples.
- memcpy is 2nd. It has no description.
Measures to a mean of "0.017605862116322" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "0.017539652442985363" 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.6999780200421812e-14" milliseconds, from 100 multi-iteration samples.
Measures to a mean of "1.520104706287384e-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 1dd6b98

Please sign in to comment.