[bm] add dump benchmarks

```
[ 58%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-atox-double: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-double.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^atox.*<double.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-double.json
2022-02-13T03:27:20+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.89, 1.96, 1.45
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
-----------------------------------------------------------------------------------------------
Benchmark                                     Time             CPU   Iterations UserCounters...
-----------------------------------------------------------------------------------------------
atox_c4_atod<double>                       21.4 ns         21.4 ns     32727663 bytes_per_second=356.978M/s items_per_second=46.7898M/s
atox_c4_atox<double>                       21.4 ns         21.4 ns     32595934 bytes_per_second=356.527M/s items_per_second=46.7307M/s
atox_c4_from_chars<double>                 21.7 ns         21.7 ns     32427241 bytes_per_second=351.647M/s items_per_second=46.0911M/s
atox_ryu_s2d<double>                       28.9 ns         28.9 ns     24360587 bytes_per_second=264.449M/s items_per_second=34.6619M/s
atox_fast_float<double>                    22.7 ns         22.7 ns     30587776 bytes_per_second=336.188M/s items_per_second=44.0649M/s
atox_fp_from_chars_limited<double>         7.71 ns         7.71 ns     89850594 bytes_per_second=989.843M/s items_per_second=129.741M/s
atox_fp_from_chars_unlimited<double>       7.75 ns         7.74 ns     90251076 bytes_per_second=985.446M/s items_per_second=129.164M/s
atox_std_atof<double>                      91.4 ns         91.4 ns      7598662 bytes_per_second=83.4681M/s items_per_second=10.9403M/s
atox_std_strtod<double>                    91.8 ns         91.8 ns      7628285 bytes_per_second=83.1324M/s items_per_second=10.8963M/s
atox_std_stod<double>                      91.2 ns         91.2 ns      7565786 bytes_per_second=83.6789M/s items_per_second=10.968M/s
atox_scanf<double>                          165 ns          165 ns      4241953 bytes_per_second=46.3275M/s items_per_second=6.07223M/s
atox_sstream<double>                        427 ns          426 ns      1623873 bytes_per_second=17.8895M/s items_per_second=2.34482M/s
atox_sstream_reuse<double>                  189 ns          189 ns      3674271 bytes_per_second=40.2846M/s items_per_second=5.28018M/s
[ 58%] Built target c4core-bm-charconv-atox-double
Consolidate compiler generated dependencies of target c4core-bm-format
[ 58%] Building CXX object bm/CMakeFiles/c4core-bm-format.dir/bm_format.cpp.o
[ 58%] Linking CXX executable c4core-bm-format
[ 58%] Built target c4core-bm-format
[ 58%] Built target c4core-bm-build
[ 58%] c4core: running benchmark c4core-bm-format, case c4core-bm-format-cat: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-format-cat.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-format-0.1.8 --benchmark_filter=^cat_.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-format-cat.json
2022-02-13T03:27:36+00:00
Running ./c4core-bm-format-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.97, 1.98, 1.47
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
-------------------------------------------------------------------------------------------------
Benchmark                                       Time             CPU   Iterations UserCounters...
-------------------------------------------------------------------------------------------------
cat_c4cat_substr                             63.3 ns         63.3 ns     11011836 bytes_per_second=1.16238G/s items_per_second=15.7986M/s
cat_c4catrs_reuse                            50.7 ns         50.7 ns     13647255 bytes_per_second=1.45216G/s items_per_second=19.7373M/s
cat_c4catrs_no_reuse                          112 ns          112 ns      6746318 bytes_per_second=674.508M/s items_per_second=8.95282M/s
cat_c4catdump_c_style_static_dispatch         181 ns          181 ns      3697847 bytes_per_second=415.89M/s items_per_second=5.52015M/s
cat_c4catdump_c_style_dynamic_dispatch        176 ns          176 ns      5631212 bytes_per_second=281.179M/s items_per_second=5.66995M/s
cat_c4catdump_cpp_style                       185 ns          184 ns      4594085 bytes_per_second=268.905M/s items_per_second=5.42245M/s
cat_c4catdump_lambda_style                    181 ns          181 ns      4683862 bytes_per_second=273.488M/s items_per_second=5.51487M/s
cat_std_to_string_reuse                       150 ns          150 ns      4578789 bytes_per_second=502.933M/s items_per_second=6.67549M/s
cat_std_to_string_no_reuse                    190 ns          190 ns      3684169 bytes_per_second=396.868M/s items_per_second=5.26768M/s
cat_stdsstream_reuse                          286 ns          286 ns      2451570 bytes_per_second=263.882M/s items_per_second=3.50254M/s
cat_stdsstream_no_reuse                       565 ns          565 ns      1235602 bytes_per_second=133.449M/s items_per_second=1.77129M/s
[ 58%] Built target c4core-bm-format-cat
[ 58%] c4core: running benchmark c4core-bm-format, case c4core-bm-format-catsep: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-format-catsep.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-format-0.1.8 --benchmark_filter=^catsep_.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-format-catsep.json
2022-02-13T03:27:46+00:00
Running ./c4core-bm-format-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.98, 1.98, 1.47
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
----------------------------------------------------------------------------------------------------
Benchmark                                          Time             CPU   Iterations UserCounters...
----------------------------------------------------------------------------------------------------
catsep_c4cat_substr                             91.5 ns         91.4 ns      7169754 bytes_per_second=938.83M/s items_per_second=10.9382M/s
catsep_c4catrs_reuse                            93.9 ns         93.9 ns      7510948 bytes_per_second=914.376M/s items_per_second=10.6533M/s
catsep_c4catrs_no_reuse                          163 ns          163 ns      4356238 bytes_per_second=843.186M/s items_per_second=6.1399M/s
catsep_c4catdump_c_style_static_dispatch         333 ns          333 ns      2394638 bytes_per_second=257.559M/s items_per_second=3.00078M/s
catsep_c4catdump_c_style_dynamic_dispatch        319 ns          319 ns      3578867 bytes_per_second=155.519M/s items_per_second=3.13603M/s
catsep_c4catdump_cpp_style                       286 ns          286 ns      2363487 bytes_per_second=173.429M/s items_per_second=3.49718M/s
catsep_c4catdump_lambda_style                    252 ns          252 ns      3054985 bytes_per_second=196.879M/s items_per_second=3.97005M/s
catsep_std_to_string_reuse                       213 ns          213 ns      3144305 bytes_per_second=688.48M/s items_per_second=4.68781M/s
catsep_std_to_string_no_reuse                    283 ns          283 ns      2459941 bytes_per_second=518.738M/s items_per_second=3.53205M/s
catsep_stdsstream_reuse                          300 ns          300 ns      2340987 bytes_per_second=282.657M/s items_per_second=3.3302M/s
catsep_stdsstream_no_reuse                       603 ns          602 ns      1155501 bytes_per_second=140.891M/s items_per_second=1.65994M/s
[ 58%] Built target c4core-bm-format-catsep
[ 58%] c4core: running benchmark c4core-bm-format, case c4core-bm-format-format: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-format-format.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-format-0.1.8 --benchmark_filter=^format_.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-format-format.json
2022-02-13T03:27:57+00:00
Running ./c4core-bm-format-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 2.06, 2.00, 1.49
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
-------------------------------------------------------------------------------------------------------
Benchmark                                             Time             CPU   Iterations UserCounters...
-------------------------------------------------------------------------------------------------------
format_c4format                                     207 ns          207 ns      3412803 bytes_per_second=1005.33M/s items_per_second=4.83563M/s
format_c4formatrs_reuse                             209 ns          209 ns      3312976 bytes_per_second=994.184M/s items_per_second=4.78201M/s
format_c4formatrs_no_reuse                          438 ns          438 ns      1596589 bytes_per_second=474.488M/s items_per_second=2.28228M/s
format_c4formatdump_c_style_static_dispatch         402 ns          401 ns      1618437 bytes_per_second=517.94M/s items_per_second=2.49128M/s
format_c4formatdump_c_style_dynamic_dispatch        332 ns          331 ns      2092228 bytes_per_second=627.372M/s items_per_second=3.01765M/s
format_c4formatdump_cpp_style                       471 ns          471 ns      1591441 bytes_per_second=441.537M/s items_per_second=2.12379M/s
format_c4formatdump_lambda_style                    481 ns          481 ns      1584533 bytes_per_second=432.44M/s items_per_second=2.08003M/s
format_snprintf                                     384 ns          384 ns      1840143 bytes_per_second=541.214M/s items_per_second=2.60323M/s
[ 58%] Built target c4core-bm-format-format
[ 58%] c4core: running benchmark c4core-bm-format, case c4core-bm-format-catfile: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-format-catfile.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-format-0.1.8 --benchmark_filter=^catfile_.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-format-catfile.json
2022-02-13T03:28:06+00:00
Running ./c4core-bm-format-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.90, 1.97, 1.48
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
-----------------------------------------------------------------------------------------------------
Benchmark                                           Time             CPU   Iterations UserCounters...
-----------------------------------------------------------------------------------------------------
catfile_c4catdump_c_style_static_dispatch         255 ns          254 ns      2734355 bytes_per_second=296.124M/s items_per_second=3.93049M/s
catfile_c4catdump_c_style_dynamic_dispatch        261 ns          260 ns      2712639 bytes_per_second=289.333M/s items_per_second=3.84036M/s
catfile_c4catdump_cpp_style                       257 ns          257 ns      2735067 bytes_per_second=193.232M/s items_per_second=3.89651M/s
catfile_c4catdump_lambda_style                    259 ns          258 ns      2728147 bytes_per_second=191.856M/s items_per_second=3.86875M/s
catfile_fprintf                                   488 ns          488 ns      1439737 bytes_per_second=154.347M/s items_per_second=2.04866M/s
catfile_ofstream                                  370 ns          370 ns      1934047 bytes_per_second=203.649M/s items_per_second=2.70305M/s
[ 58%] Built target c4core-bm-format-catfile
[ 66%] c4core: running benchmark c4core-bm-format, case c4core-bm-format-catsepfile: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-format-catsepfile.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-format-0.1.8 --benchmark_filter=^catsepfile_.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-format-catsepfile.json
2022-02-13T03:28:14+00:00
Running ./c4core-bm-format-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.91, 1.97, 1.48
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
-----------------------------------------------------------------------------------------------------------
Benchmark                                                 Time             CPU   Iterations UserCounters...
-----------------------------------------------------------------------------------------------------------
catsepfile_c4catsepdump_c_style_static_dispatch         436 ns          435 ns      1559862 bytes_per_second=315.418M/s items_per_second=2.2968M/s
catsepfile_c4catsepdump_c_style_dynamic_dispatch        442 ns          442 ns      1585995 bytes_per_second=310.752M/s items_per_second=2.26282M/s
catsepfile_c4catsepdump_cpp_style                       444 ns          444 ns      1583386 bytes_per_second=309.447M/s items_per_second=2.25333M/s
catsepfile_c4catsepdump_lambda_style                    442 ns          441 ns      1591016 bytes_per_second=311.07M/s items_per_second=2.26514M/s
catsepfile_fprintf                                      762 ns          762 ns       916324 bytes_per_second=180.213M/s items_per_second=1.31227M/s
catsepfile_ofstream                                     529 ns          528 ns      1315248 bytes_per_second=259.88M/s items_per_second=1.89239M/s
[ 66%] Built target c4core-bm-format-catsepfile
[ 66%] c4core: running benchmark c4core-bm-format, case c4core-bm-format-formatfile: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-format-formatfile.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-format-0.1.8 --benchmark_filter=^formatfile_.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-format-formatfile.json
2022-02-13T03:28:21+00:00
Running ./c4core-bm-format-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.77, 1.93, 1.48
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
-----------------------------------------------------------------------------------------------------------
Benchmark                                                 Time             CPU   Iterations UserCounters...
-----------------------------------------------------------------------------------------------------------
formatfile_c4formatdump_c_style_static_dispatch         581 ns          581 ns      1203420 bytes_per_second=357.741M/s items_per_second=1.72073M/s
formatfile_c4formatdump_c_style_dynamic_dispatch        613 ns          613 ns      1059127 bytes_per_second=339.138M/s items_per_second=1.63125M/s
formatfile_c4formatdump_cpp_style                       587 ns          586 ns      1179019 bytes_per_second=354.634M/s items_per_second=1.70579M/s
formatfile_c4formatdump_lambda_style                    594 ns          593 ns      1185183 bytes_per_second=350.408M/s items_per_second=1.68546M/s
formatfile_fprintf                                      491 ns          490 ns      1412993 bytes_per_second=423.898M/s items_per_second=2.03894M/s
[ 66%] Built target c4core-bm-format-formatfile
[ 66%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-xtoa-uint8: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-uint8.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^xtoa.*<uint8.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-uint8.json
2022-02-13T03:28:27+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.70, 1.92, 1.47
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
--------------------------------------------------------------------------------------
Benchmark                            Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------
xtoa_c4_write_dec<uint8_t>        3.65 ns         3.65 ns    192203964 bytes_per_second=261.335M/s items_per_second=274.03M/s
xtoa_c4_write_hex<uint8_t>        2.46 ns         2.46 ns    282889028 bytes_per_second=387.689M/s items_per_second=406.522M/s
xtoa_c4_write_oct<uint8_t>        2.62 ns         2.62 ns    267088227 bytes_per_second=364.582M/s items_per_second=382.292M/s
xtoa_c4_write_bin<uint8_t>        5.80 ns         5.80 ns    120410966 bytes_per_second=164.563M/s items_per_second=172.557M/s
xtoa_c4_utoa<uint8_t>             3.72 ns         3.72 ns    188038687 bytes_per_second=256.51M/s items_per_second=268.97M/s
xtoa_c4_xtoa<uint8_t>             7.09 ns         7.09 ns     99772682 bytes_per_second=134.517M/s items_per_second=141.052M/s
xtoa_c4_to_chars<uint8_t>         3.69 ns         3.69 ns    189740255 bytes_per_second=258.695M/s items_per_second=271.261M/s
xtoa_std_to_string<uint8_t>       4.89 ns         4.88 ns    142750229 bytes_per_second=195.251M/s items_per_second=204.736M/s
xtoa_sprintf<uint8_t>             47.2 ns         47.2 ns     14887351 bytes_per_second=20.2256M/s items_per_second=21.2081M/s
xtoa_sstream_reuse<uint8_t>       18.9 ns         18.9 ns     37124241 bytes_per_second=50.5696M/s items_per_second=53.026M/s
xtoa_sstream<uint8_t>              242 ns          242 ns      2920084 bytes_per_second=3.93738M/s items_per_second=4.12865M/s
[ 66%] Built target c4core-bm-charconv-xtoa-uint8
[ 66%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-xtoa-int8: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-int8.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^xtoa.*<int8.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-int8.json
2022-02-13T03:28:38+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.60, 1.89, 1.47
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
-------------------------------------------------------------------------------------
Benchmark                           Time             CPU   Iterations UserCounters...
-------------------------------------------------------------------------------------
xtoa_c4_write_dec<int8_t>        3.58 ns         3.58 ns    194726287 bytes_per_second=266.542M/s items_per_second=279.49M/s
xtoa_c4_write_hex<int8_t>        3.09 ns         3.09 ns    226782028 bytes_per_second=308.892M/s items_per_second=323.897M/s
xtoa_c4_write_oct<int8_t>        3.01 ns         3.01 ns    232120548 bytes_per_second=316.89M/s items_per_second=332.284M/s
xtoa_c4_write_bin<int8_t>        5.18 ns         5.18 ns    135810641 bytes_per_second=184.092M/s items_per_second=193.034M/s
xtoa_c4_itoa<int8_t>             4.23 ns         4.23 ns    165061770 bytes_per_second=225.642M/s items_per_second=236.603M/s
xtoa_c4_xtoa<int8_t>             9.52 ns         9.52 ns     73696495 bytes_per_second=100.215M/s items_per_second=105.083M/s
xtoa_c4_to_chars<int8_t>         4.38 ns         4.38 ns    159514559 bytes_per_second=217.818M/s items_per_second=228.399M/s
xtoa_std_to_string<int8_t>       5.44 ns         5.43 ns    147637061 bytes_per_second=175.507M/s items_per_second=184.032M/s
xtoa_sprintf<int8_t>             45.2 ns         45.2 ns     15573544 bytes_per_second=21.1032M/s items_per_second=22.1283M/s
xtoa_sstream_reuse<int8_t>       18.0 ns         18.0 ns     39531968 bytes_per_second=52.9859M/s items_per_second=55.5597M/s
xtoa_sstream<int8_t>              245 ns          244 ns      2869691 bytes_per_second=3.90184M/s items_per_second=4.09138M/s
[ 66%] Built target c4core-bm-charconv-xtoa-int8
[ 66%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-xtoa-uint16: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-uint16.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^xtoa.*<uint16.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-uint16.json
2022-02-13T03:28:50+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.69, 1.89, 1.48
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
---------------------------------------------------------------------------------------
Benchmark                             Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------
xtoa_c4_write_dec<uint16_t>        7.37 ns         7.37 ns     90921403 bytes_per_second=258.951M/s items_per_second=135.765M/s
xtoa_c4_write_hex<uint16_t>        4.53 ns         4.53 ns    156333232 bytes_per_second=421.341M/s items_per_second=220.904M/s
xtoa_c4_write_oct<uint16_t>        4.74 ns         4.74 ns    146456891 bytes_per_second=402.198M/s items_per_second=210.868M/s
xtoa_c4_write_bin<uint16_t>        12.7 ns         12.7 ns     55167453 bytes_per_second=150.34M/s items_per_second=78.8214M/s
xtoa_c4_utoa<uint16_t>             6.59 ns         6.59 ns    105213965 bytes_per_second=289.613M/s items_per_second=151.84M/s
xtoa_c4_xtoa<uint16_t>             7.22 ns         7.21 ns     97663280 bytes_per_second=264.412M/s items_per_second=138.628M/s
xtoa_c4_to_chars<uint16_t>         7.58 ns         7.58 ns     92670237 bytes_per_second=251.658M/s items_per_second=131.941M/s
xtoa_std_to_string<uint16_t>       6.37 ns         6.37 ns    109131204 bytes_per_second=299.54M/s items_per_second=157.045M/s
xtoa_sprintf<uint16_t>             48.0 ns         47.9 ns     14632088 bytes_per_second=39.7824M/s items_per_second=20.8574M/s
xtoa_sstream_reuse<uint16_t>       28.7 ns         28.6 ns     24727992 bytes_per_second=66.5863M/s items_per_second=34.9104M/s
xtoa_sstream<uint16_t>              268 ns          268 ns      2648190 bytes_per_second=7.12618M/s items_per_second=3.73617M/s
[ 66%] Built target c4core-bm-charconv-xtoa-uint16
[ 66%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-xtoa-int16: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-int16.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^xtoa.*<int16.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-int16.json
2022-02-13T03:29:00+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.66, 1.88, 1.48
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
--------------------------------------------------------------------------------------
Benchmark                            Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------
xtoa_c4_write_dec<int16_t>        6.32 ns         6.32 ns    110410770 bytes_per_second=301.839M/s items_per_second=158.25M/s
xtoa_c4_write_hex<int16_t>        3.62 ns         3.61 ns    195311772 bytes_per_second=527.711M/s items_per_second=276.672M/s
xtoa_c4_write_oct<int16_t>        4.20 ns         4.20 ns    167310632 bytes_per_second=454.67M/s items_per_second=238.378M/s
xtoa_c4_write_bin<int16_t>        12.9 ns         12.9 ns     54336201 bytes_per_second=147.469M/s items_per_second=77.3161M/s
xtoa_c4_itoa<int16_t>             6.96 ns         6.96 ns     99740627 bytes_per_second=274.211M/s items_per_second=143.765M/s
xtoa_c4_xtoa<int16_t>             12.6 ns         12.6 ns     55302868 bytes_per_second=151.051M/s items_per_second=79.1943M/s
xtoa_c4_to_chars<int16_t>         6.83 ns         6.83 ns    102998879 bytes_per_second=279.408M/s items_per_second=146.49M/s
xtoa_std_to_string<int16_t>       7.41 ns         7.41 ns     93410054 bytes_per_second=257.528M/s items_per_second=135.019M/s
xtoa_sprintf<int16_t>             48.6 ns         48.6 ns     14403688 bytes_per_second=39.2591M/s items_per_second=20.5831M/s
xtoa_sstream_reuse<int16_t>       31.6 ns         31.6 ns     22326428 bytes_per_second=60.4184M/s items_per_second=31.6767M/s
xtoa_sstream<int16_t>              269 ns          269 ns      2629718 bytes_per_second=7.10323M/s items_per_second=3.72414M/s
[ 66%] Built target c4core-bm-charconv-xtoa-int16
[ 75%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-xtoa-uint32: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-uint32.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^xtoa.*<uint32.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-uint32.json
2022-02-13T03:29:11+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.86, 1.92, 1.49
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
---------------------------------------------------------------------------------------
Benchmark                             Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------
xtoa_c4_write_dec<uint32_t>        9.94 ns         9.94 ns     81685561 bytes_per_second=383.856M/s items_per_second=100.626M/s
xtoa_c4_write_hex<uint32_t>        8.06 ns         8.05 ns     99241463 bytes_per_second=473.629M/s items_per_second=124.159M/s
xtoa_c4_write_oct<uint32_t>        7.70 ns         7.70 ns    101003372 bytes_per_second=495.549M/s items_per_second=129.905M/s
xtoa_c4_write_bin<uint32_t>        18.9 ns         18.9 ns     40143352 bytes_per_second=201.975M/s items_per_second=52.9466M/s
xtoa_c4_utoa<uint32_t>             12.6 ns         12.6 ns     60365177 bytes_per_second=303.14M/s items_per_second=79.4663M/s
xtoa_c4_xtoa<uint32_t>             16.1 ns         16.0 ns     43757538 bytes_per_second=237.71M/s items_per_second=62.3142M/s
xtoa_c4_to_chars<uint32_t>         12.0 ns         12.0 ns     66025537 bytes_per_second=317.274M/s items_per_second=83.1714M/s
xtoa_std_to_string<uint32_t>       10.3 ns         10.3 ns     74603102 bytes_per_second=370.521M/s items_per_second=97.13M/s
xtoa_sprintf<uint32_t>             49.3 ns         49.3 ns     14313902 bytes_per_second=77.3562M/s items_per_second=20.2785M/s
xtoa_sstream_reuse<uint32_t>       30.4 ns         30.4 ns     23615052 bytes_per_second=125.651M/s items_per_second=32.9387M/s
xtoa_sstream<uint32_t>              279 ns          279 ns      2523424 bytes_per_second=13.6551M/s items_per_second=3.5796M/s
[ 75%] Built target c4core-bm-charconv-xtoa-uint32
[ 75%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-xtoa-int32: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-int32.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^xtoa.*<int32.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-int32.json
2022-02-13T03:29:21+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.87, 1.92, 1.50
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
--------------------------------------------------------------------------------------
Benchmark                            Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------
xtoa_c4_write_dec<int32_t>        9.56 ns         9.56 ns     80275226 bytes_per_second=399.188M/s items_per_second=104.645M/s
xtoa_c4_write_hex<int32_t>        5.74 ns         5.73 ns    138755463 bytes_per_second=665.38M/s items_per_second=174.425M/s
xtoa_c4_write_oct<int32_t>        7.71 ns         7.70 ns    101966096 bytes_per_second=495.163M/s items_per_second=129.804M/s
xtoa_c4_write_bin<int32_t>        18.2 ns         18.2 ns     42001086 bytes_per_second=209.983M/s items_per_second=55.0458M/s
xtoa_c4_itoa<int32_t>             9.77 ns         9.77 ns     82335340 bytes_per_second=390.492M/s items_per_second=102.365M/s
xtoa_c4_xtoa<int32_t>             20.2 ns         20.2 ns     34665183 bytes_per_second=189.166M/s items_per_second=49.5887M/s
xtoa_c4_to_chars<int32_t>         9.52 ns         9.52 ns     84619795 bytes_per_second=400.852M/s items_per_second=105.081M/s
xtoa_std_to_string<int32_t>       9.22 ns         9.22 ns     74943251 bytes_per_second=413.87M/s items_per_second=108.493M/s
xtoa_sprintf<int32_t>             49.9 ns         49.9 ns     14147870 bytes_per_second=76.4438M/s items_per_second=20.0393M/s
xtoa_sstream_reuse<int32_t>       33.3 ns         33.3 ns     21295857 bytes_per_second=114.565M/s items_per_second=30.0324M/s
xtoa_sstream<int32_t>              273 ns          273 ns      2564703 bytes_per_second=13.9816M/s items_per_second=3.6652M/s
[ 75%] Built target c4core-bm-charconv-xtoa-int32
[ 75%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-xtoa-uint64: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-uint64.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^xtoa.*<uint64.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-uint64.json
2022-02-13T03:29:32+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.89, 1.92, 1.50
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
---------------------------------------------------------------------------------------
Benchmark                             Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------
xtoa_c4_write_dec<uint64_t>        12.2 ns         12.2 ns     67205461 bytes_per_second=624.663M/s items_per_second=81.8759M/s
xtoa_c4_write_hex<uint64_t>        5.48 ns         5.48 ns    139879692 bytes_per_second=1.35963G/s items_per_second=182.486M/s
xtoa_c4_write_oct<uint64_t>        10.7 ns         10.6 ns     72697553 bytes_per_second=716.504M/s items_per_second=93.9136M/s
xtoa_c4_write_bin<uint64_t>        27.2 ns         27.2 ns     27764339 bytes_per_second=280.869M/s items_per_second=36.8141M/s
xtoa_c4_utoa<uint64_t>             12.5 ns         12.5 ns     61759233 bytes_per_second=609.52M/s items_per_second=79.891M/s
xtoa_c4_xtoa<uint64_t>             17.7 ns         17.7 ns     39313060 bytes_per_second=431.296M/s items_per_second=56.5308M/s
xtoa_c4_to_chars<uint64_t>         11.4 ns         11.4 ns     71036437 bytes_per_second=672.08M/s items_per_second=88.0909M/s
xtoa_std_to_string<uint64_t>       9.60 ns         9.60 ns     72815265 bytes_per_second=794.954M/s items_per_second=104.196M/s
xtoa_sprintf<uint64_t>             51.4 ns         51.4 ns     13917146 bytes_per_second=148.347M/s items_per_second=19.4441M/s
xtoa_sstream_reuse<uint64_t>       30.3 ns         30.3 ns     23408872 bytes_per_second=251.822M/s items_per_second=33.0068M/s
xtoa_sstream<uint64_t>              266 ns          266 ns      2631300 bytes_per_second=28.726M/s items_per_second=3.76517M/s
[ 75%] Built target c4core-bm-charconv-xtoa-uint64
[ 75%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-xtoa-int64: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-int64.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^xtoa.*<int64.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-int64.json
2022-02-13T03:29:42+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.75, 1.89, 1.50
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
--------------------------------------------------------------------------------------
Benchmark                            Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------
xtoa_c4_write_dec<int64_t>        11.2 ns         11.2 ns     67353049 bytes_per_second=679.903M/s items_per_second=89.1162M/s
xtoa_c4_write_hex<int64_t>        6.07 ns         6.06 ns    127631853 bytes_per_second=1.22865G/s items_per_second=164.906M/s
xtoa_c4_write_oct<int64_t>        10.1 ns         10.1 ns     75688318 bytes_per_second=755.459M/s items_per_second=99.0195M/s
xtoa_c4_write_bin<int64_t>        28.1 ns         28.1 ns     26354275 bytes_per_second=271.274M/s items_per_second=35.5564M/s
xtoa_c4_itoa<int64_t>             11.4 ns         11.4 ns     69699448 bytes_per_second=667.464M/s items_per_second=87.4859M/s
xtoa_c4_xtoa<int64_t>             17.2 ns         17.2 ns     40303677 bytes_per_second=444.415M/s items_per_second=58.2504M/s
xtoa_c4_to_chars<int64_t>         11.3 ns         11.2 ns     71110050 bytes_per_second=678.291M/s items_per_second=88.9049M/s
xtoa_std_to_string<int64_t>       10.1 ns         10.1 ns     71484829 bytes_per_second=758.177M/s items_per_second=99.3758M/s
xtoa_sprintf<int64_t>             50.9 ns         50.9 ns     10000000 bytes_per_second=149.854M/s items_per_second=19.6417M/s
xtoa_sstream_reuse<int64_t>       32.7 ns         32.7 ns     21837971 bytes_per_second=233.609M/s items_per_second=30.6196M/s
xtoa_sstream<int64_t>              282 ns          282 ns      2494575 bytes_per_second=27.0487M/s items_per_second=3.54533M/s
[ 75%] Built target c4core-bm-charconv-xtoa-int64
[ 83%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-xtoa-float: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-float.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^xtoa.*<float.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-float.json
2022-02-13T03:29:51+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.63, 1.86, 1.49
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
------------------------------------------------------------------------------------
Benchmark                          Time             CPU   Iterations UserCounters...
------------------------------------------------------------------------------------
xtoa_c4_ftoa<float>              209 ns          209 ns      3346469 bytes_per_second=18.2364M/s items_per_second=4.78056M/s
xtoa_c4_xtoa<float>              208 ns          208 ns      3360639 bytes_per_second=18.3395M/s items_per_second=4.80758M/s
xtoa_c4_to_chars<float>          211 ns          211 ns      3391464 bytes_per_second=18.0848M/s items_per_second=4.74083M/s
xtoa_ryu_f2s<float>             23.6 ns         23.6 ns     29640298 bytes_per_second=161.58M/s items_per_second=42.3573M/s
xtoa_std_to_string<float>        163 ns          163 ns      4325975 bytes_per_second=23.407M/s items_per_second=6.136M/s
xtoa_sprintf<float>              154 ns          154 ns      4488261 bytes_per_second=24.749M/s items_per_second=6.4878M/s
xtoa_sstream_reuse<float>        217 ns          217 ns      3189290 bytes_per_second=17.5623M/s items_per_second=4.60385M/s
xtoa_sstream<float>              477 ns          476 ns      1490378 bytes_per_second=8.00842M/s items_per_second=2.09936M/s
[ 83%] Built target c4core-bm-charconv-xtoa-float
[ 83%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-xtoa-double: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-double.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^xtoa.*<double.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-xtoa-double.json
2022-02-13T03:29:59+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.66, 1.86, 1.49
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
-------------------------------------------------------------------------------------
Benchmark                           Time             CPU   Iterations UserCounters...
-------------------------------------------------------------------------------------
xtoa_c4_dtoa<double>              217 ns          217 ns      3218345 bytes_per_second=35.1699M/s items_per_second=4.60979M/s
xtoa_c4_xtoa<double>              216 ns          216 ns      3175295 bytes_per_second=35.3359M/s items_per_second=4.63155M/s
xtoa_c4_to_chars<double>          217 ns          217 ns      3248778 bytes_per_second=35.197M/s items_per_second=4.61334M/s
xtoa_ryu_d2s<double>             27.5 ns         27.5 ns     25468800 bytes_per_second=277.035M/s items_per_second=36.3116M/s
xtoa_std_to_string<double>        165 ns          165 ns      4194419 bytes_per_second=46.1624M/s items_per_second=6.0506M/s
xtoa_sprintf<double>              159 ns          159 ns      4398880 bytes_per_second=47.9653M/s items_per_second=6.2869M/s
xtoa_sstream_reuse<double>        222 ns          222 ns      3075000 bytes_per_second=34.3831M/s items_per_second=4.50666M/s
xtoa_sstream<double>              471 ns          471 ns      1482895 bytes_per_second=16.196M/s items_per_second=2.12284M/s
[ 83%] Built target c4core-bm-charconv-xtoa-double
[ 83%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-atox-uint8: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-uint8.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^atox.*<uint8.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-uint8.json
2022-02-13T03:30:07+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.72, 1.87, 1.50
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
--------------------------------------------------------------------------------------
Benchmark                            Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------
atox_c4_read_dec<uint8_t>         7.71 ns         7.71 ns     89856040 bytes_per_second=123.674M/s items_per_second=129.682M/s
atox_c4_read_hex<uint8_t>        0.451 ns        0.450 ns   1000000000 bytes_per_second=2.06775G/s items_per_second=2.22023G/s
atox_c4_read_oct<uint8_t>        0.447 ns        0.447 ns   1000000000 bytes_per_second=2.08255G/s items_per_second=2.23612G/s
atox_c4_read_bin<uint8_t>        0.447 ns        0.447 ns   1000000000 bytes_per_second=2.08199G/s items_per_second=2.23552G/s
atox_c4_atou<uint8_t>             10.6 ns         10.6 ns     64853256 bytes_per_second=89.8311M/s items_per_second=94.1947M/s
atox_c4_atox<uint8_t>             10.8 ns         10.8 ns     63347536 bytes_per_second=88.4178M/s items_per_second=92.7128M/s
atox_c4_from_chars<uint8_t>       10.5 ns         10.5 ns     66309184 bytes_per_second=90.8321M/s items_per_second=95.2443M/s
atox_std_atoi<uint8_t>            19.1 ns         19.1 ns     38817201 bytes_per_second=49.9379M/s items_per_second=52.3637M/s
atox_std_strtoul<uint8_t>         18.3 ns         18.3 ns     37725375 bytes_per_second=52.2462M/s items_per_second=54.7841M/s
atox_scanf<uint8_t>               68.0 ns         68.0 ns     10311347 bytes_per_second=14.0253M/s items_per_second=14.7066M/s
atox_sstream<uint8_t>              235 ns          235 ns      2974183 bytes_per_second=4.06259M/s items_per_second=4.25993M/s
atox_sstream_reuse<uint8_t>       22.9 ns         22.9 ns     30603383 bytes_per_second=41.6948M/s items_per_second=43.7202M/s
[ 83%] Built target c4core-bm-charconv-atox-uint8
[ 83%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-atox-int8: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-int8.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^atox.*<int8.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-int8.json
2022-02-13T03:30:16+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.61, 1.84, 1.49
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
-------------------------------------------------------------------------------------
Benchmark                           Time             CPU   Iterations UserCounters...
-------------------------------------------------------------------------------------
atox_c4_read_dec<int8_t>         7.78 ns         7.77 ns     86999654 bytes_per_second=122.661M/s items_per_second=128.619M/s
atox_c4_read_hex<int8_t>        0.447 ns        0.447 ns   1000000000 bytes_per_second=2.08221G/s items_per_second=2.23576G/s
atox_c4_read_oct<int8_t>        0.447 ns        0.447 ns   1000000000 bytes_per_second=2.08337G/s items_per_second=2.237G/s
atox_c4_read_bin<int8_t>        0.454 ns        0.453 ns   1000000000 bytes_per_second=2.05421G/s items_per_second=2.20569G/s
atox_c4_atoi<int8_t>             12.6 ns         12.6 ns     55491583 bytes_per_second=75.9516M/s items_per_second=79.6411M/s
atox_c4_atox<int8_t>             12.4 ns         12.4 ns     55998211 bytes_per_second=76.7392M/s items_per_second=80.4669M/s
atox_c4_from_chars<int8_t>       12.5 ns         12.5 ns     56054575 bytes_per_second=76.3265M/s items_per_second=80.0341M/s
atox_std_atoi<int8_t>            20.0 ns         20.0 ns     35382678 bytes_per_second=47.6747M/s items_per_second=49.9905M/s
atox_std_strtol<int8_t>          20.0 ns         20.0 ns     34551215 bytes_per_second=47.6806M/s items_per_second=49.9967M/s
atox_scanf<int8_t>               74.1 ns         74.1 ns      9400080 bytes_per_second=12.8689M/s items_per_second=13.494M/s
atox_sstream<int8_t>              241 ns          241 ns      2902483 bytes_per_second=3.95176M/s items_per_second=4.14372M/s
atox_sstream_reuse<int8_t>       23.2 ns         23.2 ns     30046191 bytes_per_second=41.1542M/s items_per_second=43.1533M/s
[ 83%] Built target c4core-bm-charconv-atox-int8
[ 83%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-atox-uint16: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-uint16.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^atox.*<uint16.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-uint16.json
2022-02-13T03:30:26+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.51, 1.81, 1.49
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
---------------------------------------------------------------------------------------
Benchmark                             Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------
atox_c4_read_dec<uint16_t>         7.76 ns         7.75 ns     89910953 bytes_per_second=245.965M/s items_per_second=128.957M/s
atox_c4_read_hex<uint16_t>        0.448 ns        0.448 ns   1000000000 bytes_per_second=4.15811G/s items_per_second=2.23237G/s
atox_c4_read_oct<uint16_t>        0.448 ns        0.448 ns   1000000000 bytes_per_second=4.15571G/s items_per_second=2.23108G/s
atox_c4_read_bin<uint16_t>        0.448 ns        0.448 ns   1000000000 bytes_per_second=4.16056G/s items_per_second=2.23368G/s
atox_c4_atou<uint16_t>             10.8 ns         10.8 ns     63926060 bytes_per_second=175.904M/s items_per_second=92.2242M/s
atox_c4_atox<uint16_t>             10.8 ns         10.8 ns     64826339 bytes_per_second=176.203M/s items_per_second=92.3813M/s
atox_c4_from_chars<uint16_t>       10.9 ns         10.9 ns     64526232 bytes_per_second=175.558M/s items_per_second=92.043M/s
atox_std_atoi<uint16_t>            19.1 ns         19.1 ns     36590294 bytes_per_second=100.028M/s items_per_second=52.4435M/s
atox_std_strtoul<uint16_t>         19.5 ns         19.5 ns     36142643 bytes_per_second=97.9782M/s items_per_second=51.3688M/s
atox_scanf<uint16_t>               73.1 ns         73.1 ns      9517472 bytes_per_second=26.0936M/s items_per_second=13.6805M/s
atox_sstream<uint16_t>              281 ns          281 ns      2534360 bytes_per_second=6.78398M/s items_per_second=3.55676M/s
atox_sstream_reuse<uint16_t>       62.1 ns         62.0 ns     11082245 bytes_per_second=30.7458M/s items_per_second=16.1197M/s
[ 83%] Built target c4core-bm-charconv-atox-uint16
[ 91%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-atox-int16: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-int16.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^atox.*<int16.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-int16.json
2022-02-13T03:30:35+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.59, 1.82, 1.49
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
--------------------------------------------------------------------------------------
Benchmark                            Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------
atox_c4_read_dec<int16_t>         7.73 ns         7.72 ns     89364564 bytes_per_second=246.949M/s items_per_second=129.472M/s
atox_c4_read_hex<int16_t>        0.450 ns        0.450 ns   1000000000 bytes_per_second=4.13865G/s items_per_second=2.22192G/s
atox_c4_read_oct<int16_t>        0.449 ns        0.449 ns   1000000000 bytes_per_second=4.15206G/s items_per_second=2.22912G/s
atox_c4_read_bin<int16_t>        0.449 ns        0.449 ns   1000000000 bytes_per_second=4.15289G/s items_per_second=2.22957G/s
atox_c4_atoi<int16_t>             13.9 ns         13.9 ns     50286113 bytes_per_second=137.094M/s items_per_second=71.8766M/s
atox_c4_atox<int16_t>             13.9 ns         13.9 ns     49771099 bytes_per_second=137.376M/s items_per_second=72.0248M/s
atox_c4_from_chars<int16_t>       13.9 ns         13.9 ns     49541236 bytes_per_second=137.412M/s items_per_second=72.0434M/s
atox_std_atoi<int16_t>            23.6 ns         23.6 ns     29753969 bytes_per_second=80.7225M/s items_per_second=42.3218M/s
atox_std_strtol<int16_t>          23.6 ns         23.6 ns     29567538 bytes_per_second=80.7876M/s items_per_second=42.356M/s
atox_scanf<int16_t>               80.0 ns         80.0 ns      8725270 bytes_per_second=23.8388M/s items_per_second=12.4984M/s
atox_sstream<int16_t>              297 ns          297 ns      2378746 bytes_per_second=6.42497M/s items_per_second=3.36854M/s
atox_sstream_reuse<int16_t>       70.9 ns         70.9 ns      9826445 bytes_per_second=26.8936M/s items_per_second=14.1M/s
[ 91%] Built target c4core-bm-charconv-atox-int16
[100%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-atox-uint32: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-uint32.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^atox.*<uint32.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-uint32.json
2022-02-13T03:30:44+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.50, 1.79, 1.49
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
---------------------------------------------------------------------------------------
Benchmark                             Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------
atox_c4_read_dec<uint32_t>         7.71 ns         7.70 ns     81261052 bytes_per_second=495.164M/s items_per_second=129.804M/s
atox_c4_read_hex<uint32_t>        0.447 ns        0.447 ns   1000000000 bytes_per_second=8.34152G/s items_per_second=2.23916G/s
atox_c4_read_oct<uint32_t>        0.448 ns        0.448 ns   1000000000 bytes_per_second=8.31352G/s items_per_second=2.23164G/s
atox_c4_read_bin<uint32_t>        0.447 ns        0.447 ns   1000000000 bytes_per_second=8.34034G/s items_per_second=2.23884G/s
atox_c4_atou<uint32_t>             13.5 ns         13.5 ns     51791103 bytes_per_second=283.005M/s items_per_second=74.188M/s
atox_c4_atox<uint32_t>             13.4 ns         13.4 ns     52610213 bytes_per_second=285.621M/s items_per_second=74.8738M/s
atox_c4_from_chars<uint32_t>       13.5 ns         13.5 ns     51939231 bytes_per_second=282.651M/s items_per_second=74.0953M/s
atox_std_atoi<uint32_t>            26.7 ns         26.7 ns     26205947 bytes_per_second=142.758M/s items_per_second=37.4232M/s
atox_std_strtoul<uint32_t>         24.8 ns         24.8 ns     28261076 bytes_per_second=153.697M/s items_per_second=40.2906M/s
atox_scanf<uint32_t>               89.8 ns         89.8 ns      7743534 bytes_per_second=42.4939M/s items_per_second=11.1395M/s
atox_sstream<uint32_t>              298 ns          298 ns      2332420 bytes_per_second=12.8211M/s items_per_second=3.36097M/s
atox_sstream_reuse<uint32_t>       73.2 ns         73.2 ns      9573889 bytes_per_second=52.1068M/s items_per_second=13.6595M/s
[100%] Built target c4core-bm-charconv-atox-uint32
[100%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-atox-int32: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-int32.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^atox.*<int32.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-int32.json
2022-02-13T03:30:54+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.46, 1.78, 1.49
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
--------------------------------------------------------------------------------------
Benchmark                            Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------
atox_c4_read_dec<int32_t>         7.84 ns         7.84 ns     80500327 bytes_per_second=486.728M/s items_per_second=127.593M/s
atox_c4_read_hex<int32_t>        0.447 ns        0.447 ns   1000000000 bytes_per_second=8.32855G/s items_per_second=2.23568G/s
atox_c4_read_oct<int32_t>        0.447 ns        0.447 ns   1000000000 bytes_per_second=8.33417G/s items_per_second=2.23719G/s
atox_c4_read_bin<int32_t>        0.448 ns        0.448 ns   1000000000 bytes_per_second=8.31433G/s items_per_second=2.23186G/s
atox_c4_atoi<int32_t>             18.6 ns         18.6 ns     37418138 bytes_per_second=204.722M/s items_per_second=53.6667M/s
atox_c4_atox<int32_t>             18.7 ns         18.7 ns     37646051 bytes_per_second=204.479M/s items_per_second=53.6029M/s
atox_c4_from_chars<int32_t>       18.8 ns         18.8 ns     36839962 bytes_per_second=203.166M/s items_per_second=53.2586M/s
atox_std_atoi<int32_t>            31.0 ns         31.0 ns     22527097 bytes_per_second=122.927M/s items_per_second=32.2245M/s
atox_std_strtol<int32_t>          31.1 ns         31.1 ns     22357403 bytes_per_second=122.681M/s items_per_second=32.1601M/s
atox_scanf<int32_t>               97.2 ns         97.2 ns      7155946 bytes_per_second=39.2444M/s items_per_second=10.2877M/s
atox_sstream<int32_t>              309 ns          309 ns      2253515 bytes_per_second=12.3484M/s items_per_second=3.23706M/s
atox_sstream_reuse<int32_t>       88.2 ns         88.2 ns      7830651 bytes_per_second=43.2676M/s items_per_second=11.3423M/s
[100%] Built target c4core-bm-charconv-atox-int32
[100%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-atox-uint64: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-uint64.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^atox.*<uint64.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-uint64.json
2022-02-13T03:31:04+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.46, 1.77, 1.49
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
---------------------------------------------------------------------------------------
Benchmark                             Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------
atox_c4_read_dec<uint64_t>         7.72 ns         7.72 ns     85327288 bytes_per_second=988.746M/s items_per_second=129.597M/s
atox_c4_read_hex<uint64_t>        0.446 ns        0.446 ns   1000000000 bytes_per_second=16.6992G/s items_per_second=2.24133G/s
atox_c4_read_oct<uint64_t>        0.446 ns        0.446 ns   1000000000 bytes_per_second=16.7152G/s items_per_second=2.24348G/s
atox_c4_read_bin<uint64_t>        0.446 ns        0.446 ns   1000000000 bytes_per_second=16.7216G/s items_per_second=2.24434G/s
atox_c4_atou<uint64_t>             13.5 ns         13.5 ns     51507080 bytes_per_second=566.622M/s items_per_second=74.2682M/s
atox_c4_atox<uint64_t>             13.3 ns         13.3 ns     52562435 bytes_per_second=573.914M/s items_per_second=75.224M/s
atox_c4_from_chars<uint64_t>       13.6 ns         13.5 ns     51811512 bytes_per_second=563.173M/s items_per_second=73.8162M/s
atox_std_atol<uint64_t>            26.6 ns         26.6 ns     26354729 bytes_per_second=286.409M/s items_per_second=37.5402M/s
atox_std_strtoull<uint64_t>        24.6 ns         24.6 ns     28502054 bytes_per_second=309.607M/s items_per_second=40.5809M/s
atox_scanf<uint64_t>               90.5 ns         90.4 ns      7719214 bytes_per_second=84.3526M/s items_per_second=11.0563M/s
atox_sstream<uint64_t>              298 ns          298 ns      2355163 bytes_per_second=25.58M/s items_per_second=3.35282M/s
atox_sstream_reuse<uint64_t>       75.3 ns         75.3 ns      9262492 bytes_per_second=101.376M/s items_per_second=13.2875M/s
[100%] Built target c4core-bm-charconv-atox-uint64
[100%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-atox-int64: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-int64.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^atox.*<int64.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-int64.json
2022-02-13T03:31:13+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.39, 1.74, 1.48
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
--------------------------------------------------------------------------------------
Benchmark                            Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------
atox_c4_read_dec<int64_t>         7.73 ns         7.73 ns     89860490 bytes_per_second=987.546M/s items_per_second=129.44M/s
atox_c4_read_hex<int64_t>        0.450 ns        0.449 ns   1000000000 bytes_per_second=16.58G/s items_per_second=2.22533G/s
atox_c4_read_oct<int64_t>        0.447 ns        0.446 ns   1000000000 bytes_per_second=16.6892G/s items_per_second=2.23998G/s
atox_c4_read_bin<int64_t>        0.446 ns        0.446 ns   1000000000 bytes_per_second=16.693G/s items_per_second=2.2405G/s
atox_c4_atoi<int64_t>             13.7 ns         13.7 ns     51159530 bytes_per_second=556.104M/s items_per_second=72.8897M/s
atox_c4_atox<int64_t>             13.7 ns         13.6 ns     51229973 bytes_per_second=558.933M/s items_per_second=73.2605M/s
atox_c4_from_chars<int64_t>       13.7 ns         13.7 ns     51167779 bytes_per_second=557.494M/s items_per_second=73.0719M/s
atox_std_atol<int64_t>            26.7 ns         26.7 ns     26050434 bytes_per_second=285.931M/s items_per_second=37.4775M/s
atox_std_strtoll<int64_t>         26.3 ns         26.2 ns     26658542 bytes_per_second=290.69M/s items_per_second=38.1013M/s
atox_scanf<int64_t>               94.6 ns         94.6 ns      7176631 bytes_per_second=80.6836M/s items_per_second=10.5754M/s
atox_sstream<int64_t>              295 ns          295 ns      2373042 bytes_per_second=25.9027M/s items_per_second=3.39512M/s
atox_sstream_reuse<int64_t>       77.0 ns         76.9 ns      9069388 bytes_per_second=99.1754M/s items_per_second=12.9991M/s
[100%] Built target c4core-bm-charconv-atox-int64
[100%] c4core: running benchmark c4core-bm-charconv, case c4core-bm-charconv-atox-float: saving results in /home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-float.json
/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/c4core-bm-charconv-0.1.8 --benchmark_filter=^atox.*<float.*;--benchmark_out_format=json;--benchmark_out=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm/bm-results/c4core-bm-charconv-atox-float.json
2022-02-13T03:31:23+00:00
Running ./c4core-bm-charconv-0.1.8
Run on (20 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x10)
  L1 Instruction 32 KiB (x10)
  L2 Unified 1024 KiB (x10)
  L3 Unified 19712 KiB (x1)
Load Average: 1.33, 1.72, 1.47
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
----------------------------------------------------------------------------------------------
Benchmark                                    Time             CPU   Iterations UserCounters...
----------------------------------------------------------------------------------------------
atox_c4_atof<float>                       21.6 ns         21.6 ns     32600566 bytes_per_second=176.287M/s items_per_second=46.2127M/s
atox_c4_atox<float>                       21.8 ns         21.8 ns     32020646 bytes_per_second=174.769M/s items_per_second=45.8146M/s
atox_c4_from_chars<float>                 21.4 ns         21.4 ns     32535027 bytes_per_second=177.898M/s items_per_second=46.6348M/s
atox_ryu_s2f<float>                       28.0 ns         27.9 ns     25164483 bytes_per_second=136.498M/s items_per_second=35.7822M/s
atox_fast_float<float>                    22.0 ns         22.0 ns     31770880 bytes_per_second=173.266M/s items_per_second=45.4206M/s
atox_fp_from_chars_limited<float>         7.64 ns         7.64 ns     91354815 bytes_per_second=499.393M/s items_per_second=130.913M/s
atox_fp_from_chars_unlimited<float>       7.62 ns         7.62 ns     91961849 bytes_per_second=500.803M/s items_per_second=131.282M/s
atox_std_atof<float>                      89.8 ns         89.8 ns      7820264 bytes_per_second=42.493M/s items_per_second=11.1393M/s
atox_std_strtof<float>                    86.9 ns         86.9 ns      8054319 bytes_per_second=43.9183M/s items_per_second=11.5129M/s
atox_std_stof<float>                      87.7 ns         87.7 ns      8000812 bytes_per_second=43.5196M/s items_per_second=11.4084M/s
atox_scanf<float>                          161 ns          161 ns      4348858 bytes_per_second=23.7363M/s items_per_second=6.22232M/s
atox_sstream<float>                        413 ns          413 ns      1701121 bytes_per_second=9.24398M/s items_per_second=2.42325M/s
atox_sstream_reuse<float>                  185 ns          185 ns      3784110 bytes_per_second=20.586M/s items_per_second=5.3965M/s
[100%] Built target c4core-bm-charconv-atox-float
CWD=/home/jpmag/proj/rapidyaml/ext/c4core/build/linux-x86_64-gxx11.1-Release/bm
[100%] Built target c4core-bm-run
```
This commit is contained in:
Joao Paulo Magalhaes
2022-02-13 00:34:09 +00:00
parent 801191b245
commit d5559e74cf
4 changed files with 769 additions and 173 deletions

87
.github/workflows/benchmarks.yml vendored Normal file
View File

@@ -0,0 +1,87 @@
name: benchmarks
defaults:
run:
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash -e -x {0}
on:
# https://github.community/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662
workflow_dispatch:
push:
branches:
- master
pull_request:
branches:
- master
env:
PROJ_PFX_TARGET: c4core-
PROJ_PFX_CMAKE: C4CORE_
CMAKE_FLAGS:
NUM_JOBS_BUILD: # 4
jobs:
benchmarks:
name: bm/c++${{matrix.std}}/${{matrix.cxx}}/${{matrix.bt}}
if: |
(!contains(github.event.head_commit.message, 'skip all')) ||
(!contains(github.event.head_commit.message, 'skip benchmarks')) ||
contains(github.event.head_commit.message, 'only benchmarks')
continue-on-error: true
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
include:
- {std: 11, cxx: g++-10, bt: Debug , os: ubuntu-18.04 , bitlinks: static64 static32}
- {std: 11, cxx: g++-10, bt: Release, os: ubuntu-18.04 , bitlinks: static64 static32}
- {std: 17, cxx: g++-10, bt: Debug , os: ubuntu-18.04 , bitlinks: static64 static32}
- {std: 17, cxx: g++-10, bt: Release, os: ubuntu-18.04 , bitlinks: static64 static32}
- {std: 20, cxx: g++-10, bt: Debug , os: ubuntu-18.04 , bitlinks: static64 static32}
- {std: 20, cxx: g++-10, bt: Release, os: ubuntu-18.04 , bitlinks: static64 static32}
- {std: 11, cxx: vs2019, bt: Debug , os: windows-latest, bitlinks: static64 static32}
- {std: 11, cxx: vs2019, bt: Release, os: windows-latest, bitlinks: static64 static32}
- {std: 17, cxx: vs2019, bt: Debug , os: windows-latest, bitlinks: static64 static32}
- {std: 17, cxx: vs2019, bt: Release, os: windows-latest, bitlinks: static64 static32}
- {std: 20, cxx: vs2019, bt: Debug , os: windows-latest, bitlinks: static64 static32}
- {std: 20, cxx: vs2019, bt: Release, os: windows-latest, bitlinks: static64 static32}
env: {BM: ON, STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
steps:
# use fetch-depth to ensure all tags are fetched
- {name: checkout, uses: actions/checkout@v2, with: {submodules: recursive, fetch-depth: 0}}
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
- {name: show info, run: source .github/setenv.sh && c4_show_info}
- name: shared64-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test shared64
- {name: shared64-build, run: source .github/setenv.sh && c4_build_target shared64 c4core-bm-build}
- {name: shared64-run, run: export NUM_JOBS_BUILD=1 && source .github/setenv.sh && c4_run_target shared64 c4core-bm-run}
- name: static64-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test static64
- {name: static64-build, run: source .github/setenv.sh && c4_build_target static64 c4core-bm-build}
- {name: static64-run, run: export NUM_JOBS_BUILD=1 && source .github/setenv.sh && c4_run_target static64 c4core-bm-run}
- name: static32-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test static32
- {name: static32-build, run: source .github/setenv.sh && c4_build_target static32 c4core-bm-build}
- {name: static32-run, run: export NUM_JOBS_BUILD=1 && source .github/setenv.sh && c4_run_target static32 c4core-bm-run}
- name: shared32-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test shared32
- {name: shared32-build, run: source .github/setenv.sh && c4_build_target shared32 c4core-bm-build}
- {name: shared32-run, run: export NUM_JOBS_BUILD=1 && source .github/setenv.sh && c4_run_target shared32 c4core-bm-run}
- name: gather benchmark results
run: |
set -x
desc=$(git describe || git rev-parse --short HEAD)
for bl in ${{matrix.bitlinks}} ; do
dst=$(echo benchmark_results/$desc/${{matrix.cxx}}-${{matrix.bt}}-c++${{matrix.std}}-$bl | sed 's:++-:xx:g' | sed 's:+:x:g')
mkdir -p $dst
find build -name bm-results
mv -vf build/$bl/bm/bm-results/* $dst/.
done
- name: upload benchmark result artifacts
uses: actions/upload-artifact@v2
with:
name: benchmark_results
path: benchmark_results/

View File

@@ -25,6 +25,10 @@ c4_add_target_benchmark(c4core-bm-format cat FILTER "^cat_.*")
c4_add_target_benchmark(c4core-bm-format catsep FILTER "^catsep_.*")
c4_add_target_benchmark(c4core-bm-format format FILTER "^format_.*")
c4_add_target_benchmark(c4core-bm-format catfile FILTER "^catfile_.*")
c4_add_target_benchmark(c4core-bm-format catsepfile FILTER "^catsepfile_.*")
c4_add_target_benchmark(c4core-bm-format formatfile FILTER "^formatfile_.*")
#----------------------------------------------

View File

@@ -4,9 +4,6 @@ prefix: c4core-bm
# TODO https://stackoverflow.com/questions/12360547/tool-for-retrieving-the-list-of-functions-and-methods-in-a-c-code-base
bm:
format-cat:
desc: compares stringification of a sequence of heterogeneous general types
src: bm_format.hpp
charconv-atox:
desc: read string to arithmetic value
src: bm_charconv.cpp
@@ -15,3 +12,21 @@ bm:
desc: write arithmetic value to string
src: bm_charconv.cpp
template_types: [uint8, int8, uint16, int16, uint32, int32, uint64, int64, float, double]
format-cat:
desc: compares stringification of a sequence of heterogeneous general types
src: bm_format.cpp
format-catfile:
desc: compares stringification to a file of a sequence of heterogeneous general types
src: bm_format.cpp
format-catsep:
desc: compares stringification of a sequence of heterogeneous general types
src: bm_format.cpp
format-catsepfile:
desc: compares stringification to a file of a sequence of heterogeneous general types
src: bm_format.cpp
format-format:
desc: compares formatting of a sequence of heterogeneous general types
src: bm_format.cpp
format-formatfile:
desc: compares stringification to a file of a sequence of heterogeneous general types
src: bm_format.cpp

View File

@@ -2,8 +2,10 @@
#include <c4/c4_push.hpp>
#include <c4/std/std.hpp>
#include <c4/format.hpp>
#include <c4/dump.hpp>
#include <sstream>
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <vector>
#include <benchmark/benchmark.h>
@@ -41,6 +43,9 @@ void report(bm::State &st, size_t sz)
}
const c4::csubstr sep = " --- ";
#define _c4argbundle_fmt "hello here you have some numbers: "\
"1={}, 2={}, 3={}, 4={}, 5={}, 6={}, 7={}, 8={}, 9={}, size_t(283482349)={}, "\
"\" \"=\"{}\", \"haha\"=\"{}\", std::string(\"hehe\")=\"{}\", "\
@@ -51,6 +56,11 @@ void report(bm::State &st, size_t sz)
"\" \"=\"%s\", \"haha\"=\"%s\", std::string(\"hehe\")=\"%s\", "\
"str=\"%s\""
#define _c4argbundle_fmt_printf_sep "hello here you have some numbers: "\
"1=%d%s2=%d%s3=%d%s4=%d%s5=%d%s6=%d%s7=%d%s8=%d%s9=%d%ssize_t(283482349)=%zu%s"\
"\" \"=\"%s\"%s\"haha\"=\"%s\"%sstd::string(\"hehe\")=\"%s\"%s"\
"str=\"%s\""
#define _c4argbundle \
1, 2, 3, 4, 5, 6, 7, 8, 9, size_t(283482349),\
" ", "haha", std::string("hehe"),\
@@ -61,162 +71,57 @@ void report(bm::State &st, size_t sz)
" ", "haha", std::string("hehe").c_str(),\
std::string("asdlklkasdlkjasd asdlkjasdlkjasdlkjasdoiasdlkjasldkj").c_str()
#define _c4argbundle_printf_sep \
1, sep.str, 2, sep.str, 3, sep.str, 4, sep.str, 5, sep.str, 6, sep.str, 7, sep.str, 8, sep.str, 9, sep.str, size_t(283482349), sep.str,\
" ", sep.str, "haha", sep.str, std::string("hehe").c_str(), sep.str,\
std::string("asdlklkasdlkjasd asdlkjasdlkjasdlkjasdoiasdlkjasldkj").c_str()
#define _c4argbundle_lshift \
1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9 << size_t(283482349)\
<< " " << "haha" << std::string("hehe")\
<< std::string("asdlklkasdlkjasd asdlkjasdlkjasdlkjasdoiasdlkjasldkj")
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void cat_c4cat_substr(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = 0;
for(auto _ : st)
{
sz = cat(buf, _c4argbundle);
}
report(st, sz);
}
void catsep_c4cat_substr(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = 0;
for(auto _ : st)
{
sz = catsep(buf, _c4argbundle);
}
report(st, sz);
}
void cat_c4catrs_reuse(bm::State &st)
{
std::string buf;
size_t sz = 0;
for(auto _ : st)
{
c4::catrs(&buf, _c4argbundle);
sz = buf.size();
}
report(st, sz);
}
void catsep_c4catrs_reuse(bm::State &st)
{
std::string buf;
size_t sz = 0;
for(auto _ : st)
{
c4::catseprs(&buf, _c4argbundle);
sz = buf.size();
}
report(st, sz);
}
void cat_c4catrs_no_reuse(bm::State &st)
{
size_t sz = 0;
for(auto _ : st)
{
auto buf = c4::catrs<std::string>(_c4argbundle);
sz = buf.size();
}
report(st, sz);
}
void catsep_c4catrs_no_reuse(bm::State &st)
{
size_t sz = 0;
for(auto _ : st)
{
auto buf = c4::catseprs<std::string>(_c4argbundle);
sz = buf.size();
}
report(st, sz);
}
//-----------------------------------------------------------------------------
void cat_std_stringstream_impl(std::stringstream &)
{
}
void catsep_std_stringstream_impl(std::stringstream &)
{
}
template<class Arg, class... Args>
void cat_std_stringstream_impl(std::stringstream &ss, Arg const& a, Args const& ...args)
{
ss << a;
cat_std_stringstream_impl(ss, args...);
}
template<class Arg, class... Args>
void catsep_std_stringstream_impl(std::stringstream &ss, Arg const& a, Args const& ...args)
{
ss << ' ' << a;
cat_std_stringstream_impl(ss, args...);
}
void cat_stdsstream_reuse(bm::State &st)
{
size_t sz = 0;
std::stringstream ss;
for(auto _ : st)
{
ss.clear();
ss.str("");
cat_std_stringstream_impl(ss, _c4argbundle);
sz = ss.str().size();
}
report(st, sz);
}
void catsep_stdsstream_reuse(bm::State &st)
{
size_t sz = 0;
std::stringstream ss;
for(auto _ : st)
{
ss.clear();
ss.str("");
catsep_std_stringstream_impl(ss, _c4argbundle);
sz = ss.str().size();
}
report(st, sz);
}
void cat_stdsstream_no_reuse(bm::State &st)
{
size_t sz = 0;
for(auto _ : st)
{
std::stringstream ss;
cat_std_stringstream_impl(ss, _c4argbundle);
sz = ss.str().size();
}
report(st, sz);
}
void catsep_stdsstream_no_reuse(bm::State &st)
{
size_t sz = 0;
for(auto _ : st)
{
std::stringstream ss;
catsep_std_stringstream_impl(ss, _c4argbundle);
sz = ss.str().size();
}
report(st, sz);
}
#define _c4argbundle_lshift_sep \
1 << sep << 2 << sep << 3 << sep << 4 << sep << 5 << sep << 6 << sep << 7 << sep << 8 << sep << 9 << sep << size_t(283482349)\
<< sep << " " << sep << "haha" << sep << std::string("hehe")\
<< sep << std::string("asdlklkasdlkjasd asdlkjasdlkjasdlkjasdoiasdlkjasldkj")
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
namespace dump2str {
std::string c_style_subject;
void c_style(c4::csubstr s) { c_style_subject.append(s.str, s.len); }
struct cpp_style
{
std::string subject = {};
void operator() (c4::csubstr s) { subject.append(s.str, s.len); }
};
struct lambda_style
{
std::string subject = {};
};
} // namespace dump2str
namespace dump2file {
FILE * c_style_subject;
void c_style(c4::csubstr s) { fwrite(s.str, 1, s.len, c_style_subject); }
struct cpp_style
{
FILE * subject;
cpp_style() : subject(fopen("asdkjhasdkjhsdfoiefkjn", "wb")) {}
~cpp_style() { fclose(subject); }
void operator() (c4::csubstr s) { fwrite(s.str, 1, s.len, subject); }
};
struct lambda_style
{
lambda_style() : subject(fopen("asdkjhasdkjhsdfoiefkjn", "wb")) {}
~lambda_style() { fclose(subject); }
FILE * subject;
};
} // namespace dump2fil
template<class T>
C4_ALWAYS_INLINE typename std::enable_if<std::is_arithmetic<T>::value, std::string>::type
@@ -232,6 +137,11 @@ std_to_string(std::string const& a)
return a;
}
C4_ALWAYS_INLINE std::string std_to_string(c4::csubstr a)
{
return std::string(a.str, a.len);
}
template<class T>
C4_ALWAYS_INLINE typename std::enable_if< ! std::is_arithmetic<T>::value, std::string>::type
std_to_string(T const& a)
@@ -257,9 +167,149 @@ void cat_std_string_impl(std::string *s, Arg const& a, Args const& ...args)
template<class Arg, class... Args>
void catsep_std_string_impl(std::string *s, Arg const& a, Args const& ...args)
{
*s += ' ';
*s += std_to_string(a);
cat_std_string_impl(s, args...);
if(sizeof...(args) > 0)
{
s->append(sep.str, sep.len);
catsep_std_string_impl(s, args...);
}
}
void cat_std_stringstream_impl(std::stringstream &)
{
}
void catsep_std_stringstream_impl(std::stringstream &)
{
}
template<class Arg, class... Args>
void cat_std_stringstream_impl(std::stringstream &ss, Arg const& a, Args const& ...args)
{
ss << a;
cat_std_stringstream_impl(ss, args...);
}
template<class Arg, class... Args>
void catsep_std_stringstream_impl(std::stringstream &ss, Arg const& a, Args const& ...args)
{
ss << sep << a;
cat_std_stringstream_impl(ss, args...);
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void cat_c4cat_substr(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = 0;
for(auto _ : st)
{
sz = cat(buf, _c4argbundle);
}
report(st, sz);
}
void cat_c4catrs_reuse(bm::State &st)
{
std::string buf;
size_t sz = 0;
for(auto _ : st)
{
c4::catrs(&buf, _c4argbundle);
sz = buf.size();
}
report(st, sz);
}
void cat_c4catrs_no_reuse(bm::State &st)
{
size_t sz = 0;
for(auto _ : st)
{
auto buf = c4::catrs<std::string>(_c4argbundle);
sz = buf.size();
}
report(st, sz);
}
void cat_c4catdump_c_style_static_dispatch(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::cat(buf, _c4argbundle);
for(auto _ : st)
{
c4::cat_dump<&dump2str::c_style>(buf, _c4argbundle);
}
report(st, sz);
}
void cat_c4catdump_c_style_dynamic_dispatch(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::cat(buf, _c4argbundle);
for(auto _ : st)
{
sz = c4::cat_dump(&dump2str::c_style, buf, _c4argbundle);
}
report(st, sz);
}
void cat_c4catdump_cpp_style(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::cat(buf, _c4argbundle);
dump2str::cpp_style dumper;
for(auto _ : st)
{
sz = c4::cat_dump(dumper, buf, _c4argbundle);
}
report(st, sz);
}
void cat_c4catdump_lambda_style(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::cat(buf, _c4argbundle);
dump2str::lambda_style dumper;
auto lambda = [&dumper](c4::csubstr s) { dumper.subject.append(s.str, s.len); };
for(auto _ : st)
{
sz = c4::cat_dump(lambda, buf, _c4argbundle);
}
report(st, sz);
}
void cat_stdsstream_reuse(bm::State &st)
{
size_t sz = 0;
std::stringstream ss;
for(auto _ : st)
{
ss.clear();
ss.str("");
cat_std_stringstream_impl(ss, _c4argbundle);
sz = ss.str().size();
}
report(st, sz);
}
void cat_stdsstream_no_reuse(bm::State &st)
{
size_t sz = 0;
for(auto _ : st)
{
std::stringstream ss;
cat_std_stringstream_impl(ss, _c4argbundle);
sz = ss.str().size();
}
report(st, sz);
}
void cat_std_to_string_reuse(bm::State &st)
@@ -275,19 +325,6 @@ void cat_std_to_string_reuse(bm::State &st)
report(st, sz);
}
void catsep_std_to_string_reuse(bm::State &st)
{
size_t sz = 0;
std::string s;
for(auto _ : st)
{
s.clear();
catsep_std_string_impl(&s, _c4argbundle);
sz = s.size();
}
report(st, sz);
}
void cat_std_to_string_no_reuse(bm::State &st)
{
size_t sz = 0;
@@ -300,13 +337,227 @@ void cat_std_to_string_no_reuse(bm::State &st)
report(st, sz);
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void catfile_c4catdump_c_style_static_dispatch(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
dump2file::cpp_style fileowner;
dump2file::c_style_subject = fileowner.subject;
size_t sz = c4::cat(buf, _c4argbundle);
for(auto _ : st)
{
c4::cat_dump<&dump2file::c_style>(buf, _c4argbundle);
}
report(st, sz);
}
void catfile_c4catdump_c_style_dynamic_dispatch(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
dump2file::cpp_style fileowner;
dump2file::c_style_subject = fileowner.subject;
size_t sz = c4::cat(buf, _c4argbundle);
for(auto _ : st)
{
c4::cat_dump(&dump2file::c_style, buf, _c4argbundle);
}
report(st, sz);
}
void catfile_c4catdump_cpp_style(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::cat(buf, _c4argbundle);
dump2file::cpp_style dumper;
for(auto _ : st)
{
sz = c4::cat_dump(dumper, buf, _c4argbundle);
}
report(st, sz);
}
void catfile_c4catdump_lambda_style(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::cat(buf, _c4argbundle);
dump2file::lambda_style dumper;
auto lambda = [&dumper](c4::csubstr s) { fwrite(s.str, 1, s.len, dumper.subject); };
for(auto _ : st)
{
sz = c4::cat_dump(lambda, buf, _c4argbundle);
}
report(st, sz);
}
void catfile_fprintf(bm::State &st)
{
char buf[256];
size_t sz = c4::cat(buf, _c4argbundle);
dump2file::cpp_style dumper;
for(auto _ : st)
{
fprintf(dumper.subject, _c4argbundle_fmt_printf, _c4argbundle_printf);
}
report(st, sz);
}
void catfile_ofstream(bm::State &st)
{
char buf[256];
size_t sz = c4::cat(buf, _c4argbundle);
std::ofstream ofs("ddofgufgbmn4g0rtglf", std::ios::out|std::ios::binary);
for(auto _ : st)
{
ofs << _c4argbundle_lshift;
}
report(st, sz);
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void catsep_c4cat_substr(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = 0;
for(auto _ : st)
{
sz = catsep(buf, _c4argbundle);
}
report(st, sz);
}
void catsep_c4catrs_reuse(bm::State &st)
{
std::string buf;
size_t sz = 0;
for(auto _ : st)
{
c4::catseprs(&buf, _c4argbundle);
sz = buf.size();
}
report(st, sz);
}
void catsep_c4catrs_no_reuse(bm::State &st)
{
size_t sz = 0;
for(auto _ : st)
{
auto buf = c4::catseprs<std::string>(sep, _c4argbundle);
sz = buf.size();
}
report(st, sz);
}
void catsep_c4catdump_c_style_static_dispatch(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::catsep(buf, _c4argbundle);
for(auto _ : st)
{
c4::catsep_dump<&dump2str::c_style>(buf, sep, _c4argbundle);
}
report(st, sz);
}
void catsep_c4catdump_c_style_dynamic_dispatch(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::catsep(buf, _c4argbundle);
for(auto _ : st)
{
sz = c4::catsep_dump(&dump2str::c_style, buf, sep, _c4argbundle);
}
report(st, sz);
}
void catsep_c4catdump_cpp_style(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::catsep(buf, _c4argbundle);
dump2str::cpp_style dumper;
for(auto _ : st)
{
sz = c4::catsep_dump(dumper, buf, sep, _c4argbundle);
}
report(st, sz);
}
void catsep_c4catdump_lambda_style(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::catsep(buf, sep, _c4argbundle);
dump2str::lambda_style dumper;
auto lambda = [&dumper](c4::csubstr s) { dumper.subject.append(s.str, s.len); };
for(auto _ : st)
{
sz = c4::catsep_dump(lambda, buf, _c4argbundle);
}
report(st, sz);
}
void catsep_stdsstream_reuse(bm::State &st)
{
size_t sz = 0;
std::stringstream ss;
for(auto _ : st)
{
ss.clear();
ss.str("");
catsep_std_stringstream_impl(ss, sep, _c4argbundle);
sz = ss.str().size();
}
report(st, sz);
}
void catsep_stdsstream_no_reuse(bm::State &st)
{
size_t sz = 0;
for(auto _ : st)
{
std::stringstream ss;
catsep_std_stringstream_impl(ss, sep, _c4argbundle);
sz = ss.str().size();
}
report(st, sz);
}
void catsep_std_to_string_reuse(bm::State &st)
{
size_t sz = 0;
std::string s;
for(auto _ : st)
{
s.clear();
catsep_std_string_impl(&s, sep, _c4argbundle);
sz = s.size();
}
report(st, sz);
}
void catsep_std_to_string_no_reuse(bm::State &st)
{
size_t sz = 0;
for(auto _ : st)
{
std::string s;
catsep_std_string_impl(&s, _c4argbundle);
catsep_std_string_impl(&s, sep, _c4argbundle);
sz = s.size();
}
report(st, sz);
@@ -317,7 +568,91 @@ void catsep_std_to_string_no_reuse(bm::State &st)
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void format_c4_format(bm::State &st)
void catsepfile_c4catsepdump_c_style_static_dispatch(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
dump2file::cpp_style fileowner;
dump2file::c_style_subject = fileowner.subject;
size_t sz = c4::catsep(buf, sep, _c4argbundle);
for(auto _ : st)
{
c4::catsep_dump<&dump2file::c_style>(buf, sep, _c4argbundle);
}
report(st, sz);
}
void catsepfile_c4catsepdump_c_style_dynamic_dispatch(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
dump2file::cpp_style fileowner;
dump2file::c_style_subject = fileowner.subject;
size_t sz = c4::catsep(buf, sep, _c4argbundle);
for(auto _ : st)
{
c4::catsep_dump(&dump2file::c_style, buf, sep, _c4argbundle);
}
report(st, sz);
}
void catsepfile_c4catsepdump_cpp_style(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::catsep(buf, sep, _c4argbundle);
dump2file::cpp_style dumper;
for(auto _ : st)
{
c4::catsep_dump(dumper, buf, sep, _c4argbundle);
}
report(st, sz);
}
void catsepfile_c4catsepdump_lambda_style(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::catsep(buf, sep, _c4argbundle);
dump2file::lambda_style dumper;
auto lambda = [&dumper](c4::csubstr s) { fwrite(s.str, 1, s.len, dumper.subject); };
for(auto _ : st)
{
c4::catsep_dump(lambda, buf, sep, _c4argbundle);
}
report(st, sz);
}
void catsepfile_fprintf(bm::State &st)
{
char buf[256];
size_t sz = c4::catsep(buf, sep, _c4argbundle);
dump2file::cpp_style dumper;
for(auto _ : st)
{
fprintf(dumper.subject, _c4argbundle_fmt_printf_sep, _c4argbundle_printf_sep);
}
report(st, sz);
}
void catsepfile_ofstream(bm::State &st)
{
char buf[256];
size_t sz = c4::catsep(buf, sep, _c4argbundle);
std::ofstream ofs("ddofgufgbmn4g0rtglf", std::ios::out|std::ios::binary);
for(auto _ : st)
{
ofs << _c4argbundle_lshift_sep;
}
report(st, sz);
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void format_c4format(bm::State &st)
{
char buf_[512];
c4::substr buf(buf_);
@@ -329,7 +664,7 @@ void format_c4_format(bm::State &st)
report(st, sz);
}
void format_c4_formatrs_reuse(bm::State &st)
void format_c4formatrs_reuse(bm::State &st)
{
std::string buf;
size_t sz = 0;
@@ -341,7 +676,7 @@ void format_c4_formatrs_reuse(bm::State &st)
report(st, sz);
}
void format_c4_formatrs_no_reuse(bm::State &st)
void format_c4formatrs_no_reuse(bm::State &st)
{
size_t sz = 0;
for(auto _ : st)
@@ -352,6 +687,57 @@ void format_c4_formatrs_no_reuse(bm::State &st)
report(st, sz);
}
void format_c4formatdump_c_style_static_dispatch(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::format(buf, _c4argbundle_fmt, _c4argbundle);
for(auto _ : st)
{
c4::format_dump<&dump2str::c_style>(buf, _c4argbundle_fmt, _c4argbundle);
}
report(st, sz);
}
void format_c4formatdump_c_style_dynamic_dispatch(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::format(buf, _c4argbundle_fmt, _c4argbundle);
for(auto _ : st)
{
c4::format_dump(&dump2str::c_style, buf, _c4argbundle_fmt, _c4argbundle);
}
report(st, sz);
}
void format_c4formatdump_cpp_style(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::format(buf, _c4argbundle_fmt, _c4argbundle);
dump2str::cpp_style dumper;
for(auto _ : st)
{
c4::format_dump(dumper, buf, _c4argbundle_fmt, _c4argbundle);
}
report(st, sz);
}
void format_c4formatdump_lambda_style(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::format(buf, _c4argbundle_fmt, _c4argbundle);
dump2str::lambda_style dumper;
auto lambda = [&dumper](c4::csubstr s) { dumper.subject.append(s.str, s.len); };
for(auto _ : st)
{
c4::format_dump(lambda, buf, _c4argbundle_fmt, _c4argbundle);
}
report(st, sz);
}
void format_snprintf(bm::State &st)
{
char buf_[512];
@@ -365,6 +751,78 @@ void format_snprintf(bm::State &st)
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void formatfile_c4formatdump_c_style_static_dispatch(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
dump2file::cpp_style fileowner;
dump2file::c_style_subject = fileowner.subject;
size_t sz = c4::format(buf, _c4argbundle_fmt, _c4argbundle);
for(auto _ : st)
{
c4::format_dump<&dump2file::c_style>(buf, _c4argbundle_fmt, _c4argbundle);
}
report(st, sz);
}
void formatfile_c4formatdump_c_style_dynamic_dispatch(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
dump2file::cpp_style fileowner;
dump2file::c_style_subject = fileowner.subject;
size_t sz = c4::format(buf, _c4argbundle_fmt, _c4argbundle);
for(auto _ : st)
{
c4::format_dump(&dump2file::c_style, buf, _c4argbundle_fmt, _c4argbundle);
}
report(st, sz);
}
void formatfile_c4formatdump_cpp_style(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::format(buf, _c4argbundle_fmt, _c4argbundle);
dump2file::cpp_style dumper;
for(auto _ : st)
{
c4::format_dump(dumper, buf, _c4argbundle_fmt, _c4argbundle);
}
report(st, sz);
}
void formatfile_c4formatdump_lambda_style(bm::State &st)
{
char buf_[256];
c4::substr buf(buf_);
size_t sz = c4::format(buf, _c4argbundle_fmt, _c4argbundle);
dump2file::lambda_style dumper;
auto lambda = [&dumper](c4::csubstr s) { fwrite(s.str, 1, s.len, dumper.subject); };
for(auto _ : st)
{
c4::format_dump(lambda, buf, _c4argbundle_fmt, _c4argbundle);
}
report(st, sz);
}
void formatfile_fprintf(bm::State &st)
{
char buf[256];
size_t sz = c4::format(buf, _c4argbundle_fmt, _c4argbundle);
dump2file::cpp_style dumper;
for(auto _ : st)
{
fprintf(dumper.subject, _c4argbundle_fmt_printf, _c4argbundle_printf);
}
report(st, sz);
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
@@ -372,26 +830,58 @@ void format_snprintf(bm::State &st)
C4BM(cat_c4cat_substr);
C4BM(cat_c4catrs_reuse);
C4BM(cat_c4catrs_no_reuse);
C4BM(cat_c4catdump_c_style_static_dispatch);
C4BM(cat_c4catdump_c_style_dynamic_dispatch);
C4BM(cat_c4catdump_cpp_style);
C4BM(cat_c4catdump_lambda_style);
C4BM(cat_std_to_string_reuse);
C4BM(cat_std_to_string_no_reuse);
C4BM(cat_stdsstream_reuse);
C4BM(cat_stdsstream_no_reuse);
C4BM(catfile_c4catdump_c_style_static_dispatch);
C4BM(catfile_c4catdump_c_style_dynamic_dispatch);
C4BM(catfile_c4catdump_cpp_style);
C4BM(catfile_c4catdump_lambda_style);
C4BM(catfile_fprintf);
C4BM(catfile_ofstream);
C4BM(catsep_c4cat_substr);
C4BM(catsep_c4catrs_reuse);
C4BM(catsep_c4catrs_no_reuse);
C4BM(catsep_c4catdump_c_style_static_dispatch);
C4BM(catsep_c4catdump_c_style_dynamic_dispatch);
C4BM(catsep_c4catdump_cpp_style);
C4BM(catsep_c4catdump_lambda_style);
C4BM(catsep_std_to_string_reuse);
C4BM(catsep_std_to_string_no_reuse);
C4BM(catsep_stdsstream_reuse);
C4BM(catsep_stdsstream_no_reuse);
C4BM(catsepfile_c4catsepdump_c_style_static_dispatch);
C4BM(catsepfile_c4catsepdump_c_style_dynamic_dispatch);
C4BM(catsepfile_c4catsepdump_cpp_style);
C4BM(catsepfile_c4catsepdump_lambda_style);
C4BM(catsepfile_fprintf);
C4BM(catsepfile_ofstream);
C4BM(format_c4_format);
C4BM(format_c4_formatrs_reuse);
C4BM(format_c4_formatrs_no_reuse);
C4BM(format_c4format);
C4BM(format_c4formatrs_reuse);
C4BM(format_c4formatrs_no_reuse);
C4BM(format_c4formatdump_c_style_static_dispatch);
C4BM(format_c4formatdump_c_style_dynamic_dispatch);
C4BM(format_c4formatdump_cpp_style);
C4BM(format_c4formatdump_lambda_style);
C4BM(format_snprintf);
C4BM(formatfile_c4formatdump_c_style_static_dispatch);
C4BM(formatfile_c4formatdump_c_style_dynamic_dispatch);
C4BM(formatfile_c4formatdump_cpp_style);
C4BM(formatfile_c4formatdump_lambda_style);
C4BM(formatfile_fprintf);
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------