Skip to content

Instantly share code, notes, and snippets.

@biojppm
Created November 12, 2020 03:02
Show Gist options
  • Save biojppm/ac5fe5bf3ba449d9d88f1a781bba8268 to your computer and use it in GitHub Desktop.
Save biojppm/ac5fe5bf3ba449d9d88f1a781bba8268 to your computer and use it in GitHub Desktop.
benchmark results: for reading floats

Description

This shows the benchmark results comparing throughput of float parsing from several existing libraries.

Windows

build

d:/proj/c4core $ cmany b -t Debug,Release \
-V C4CORE_DEV=ON -V C4CORE_BM_FLOAT_CMP=ON \
-V C4CORE_CXX_STANDARD=17 \
. c4core-bm-charconv c4core-bm-readfloat

binary sizes

$ for i in build/windows* ; do echo ; echo "$i -------------------------------" ; cat $(find $i -name "c4core*dat") ; done

build/windows-x86_64-vs2019-Debug -------------------------------
c4core-bm-readfloat-baseline: {compile: 1.568s, file_size: 52736B}
c4core-bm-readfloat-fast_float_d: {compile: 1.771s, file_size: 94208B}
c4core-bm-readfloat-fast_float_f: {compile: 1.784s, file_size: 94208B}
c4core-bm-readfloat-fast_fp_d_limited: {compile: 1.628s, file_size: 78848B}
c4core-bm-readfloat-fast_fp_d_unlimited: {compile: 2.153s, file_size: 135168B}
c4core-bm-readfloat-fast_fp_f_limited: {compile: 2.155s, file_size: 65024B}
c4core-bm-readfloat-fast_fp_f_unlimited: {compile: 1.679s, file_size: 71680B}
c4core-bm-readfloat-iostream_d: {compile: 1.767s, file_size: 78848B}
c4core-bm-readfloat-iostream_f: {compile: 1.724s, file_size: 78848B}
c4core-bm-readfloat-ryu_d: {compile: 1.741s, file_size: 73216B}
c4core-bm-readfloat-ryu_f: {compile: 1.528s, file_size: 71680B}
c4core-bm-readfloat-sscanf_d: {compile: 1.489s, file_size: 53760B}
c4core-bm-readfloat-sscanf_f: {compile: 1.468s, file_size: 53760B}
c4core-bm-readfloat-std_atof: {compile: 1.497s, file_size: 52736B}
c4core-bm-readfloat-std_from_chars_d: {compile: 1.361s, file_size: 99328B}
c4core-bm-readfloat-std_from_chars_f: {compile: 1.327s, file_size: 98816B}

build/windows-x86_64-vs2019-Release -------------------------------
c4core-bm-readfloat-baseline: {compile: 1.433s, file_size: 11264B}
c4core-bm-readfloat-fast_float_d: {compile: 2.082s, file_size: 30208B}
c4core-bm-readfloat-fast_float_f: {compile: 2.048s, file_size: 29184B}
c4core-bm-readfloat-fast_fp_d_limited: {compile: 1.619s, file_size: 23040B}
c4core-bm-readfloat-fast_fp_d_unlimited: {compile: 1.936s, file_size: 65024B}
c4core-bm-readfloat-fast_fp_f_limited: {compile: 1.615s, file_size: 12288B}
c4core-bm-readfloat-fast_fp_f_unlimited: {compile: 1.575s, file_size: 15872B}
c4core-bm-readfloat-iostream_d: {compile: 2.002s, file_size: 20480B}
c4core-bm-readfloat-iostream_f: {compile: 2.048s, file_size: 20480B}
c4core-bm-readfloat-ryu_d: {compile: 1.255s, file_size: 22528B}
c4core-bm-readfloat-ryu_f: {compile: 0.641s, file_size: 22528B}
c4core-bm-readfloat-sscanf_d: {compile: 1.502s, file_size: 11264B}
c4core-bm-readfloat-sscanf_f: {compile: 1.430s, file_size: 11264B}
c4core-bm-readfloat-std_atof: {compile: 1.471s, file_size: 11264B}
c4core-bm-readfloat-std_from_chars_d: {compile: 1.658s, file_size: 22016B}
c4core-bm-readfloat-std_from_chars_f: {compile: 1.637s, file_size: 21504B}

read throughput

for bt in Release Debug ; do \
  for type in float double ; do \
    build/windows-x86_64-vs2019-$bt/bm/$bt/c4core-bm-charconv.exe --benchmark_filter="atox.*$type" ; \
   done ; \
done
11/12/20 02:34:08
Running D:\proj\c4core\build\windows-x86_64-vs2019-Release\bm\Release\c4core-bm-charconv.exe
Run on (12 X 3400 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x6)
  L1 Instruction 32 KiB (x6)
  L2 Unified 256 KiB (x6)
  L3 Unified 15360 KiB (x1)
--------------------------------------------------------------------------------------------------------
Benchmark                                              Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------------------------
atox_c4_atox<float>                                  122 ns          122 ns      6400000 bytes_per_second=31.25M/s items_per_second=8.192M/s
atox_ryu_s2f<float>                                 40.9 ns         40.8 ns     17230769 bytes_per_second=93.4829M/s items_per_second=24.506M/s
atox_fast_float<float>                              30.4 ns         30.7 ns     22400000 bytes_per_second=124.29M/s items_per_second=32.5818M/s
atox_std_from_chars<float>                           122 ns          120 ns      5600000 bytes_per_second=31.7951M/s items_per_second=8.33488M/s
atox_fp_from_chars_limited<float>                   33.4 ns         33.7 ns     21333333 bytes_per_second=113.225M/s items_per_second=29.6812M/s
atox_fp_from_chars_unlimited<float>                 47.4 ns         47.1 ns     14933333 bytes_per_second=81.0185M/s items_per_second=21.2385M/s
atox_std_atof<float>                                 159 ns          160 ns      4480000 bytes_per_second=23.7772M/s items_per_second=6.23304M/s
atox_std_strtof<float>                               155 ns          153 ns      4480000 bytes_per_second=24.858M/s items_per_second=6.51636M/s
atox_std_stof<float>                                 178 ns          180 ns      3733333 bytes_per_second=21.1967M/s items_per_second=5.55659M/s
atox_scanf<float>                                    269 ns          267 ns      2635294 bytes_per_second=14.2974M/s items_per_second=3.74797M/s
atox_sstream<float, std::istringstream>              964 ns          963 ns       746667 bytes_per_second=3.96286M/s items_per_second=1038.84k/s
atox_sstream<float, std::stringstream>               969 ns          984 ns       746667 bytes_per_second=3.87855M/s items_per_second=1016.74k/s
atox_sstream_reuse<float, std::istringstream>        710 ns          698 ns      1120000 bytes_per_second=5.46875M/s items_per_second=1.4336M/s
atox_sstream_reuse<float, std::stringstream>         719 ns          715 ns       896000 bytes_per_second=5.33537M/s items_per_second=1.39863M/s
atox_fast_float<double>                             31.9 ns         32.1 ns     22400000 bytes_per_second=237.772M/s items_per_second=31.1652M/s
+ for type in float double
+ build/windows-x86_64-vs2019-Release/bm/Release/c4core-bm-charconv.exe '--benchmark_filter=atox.*double'
11/12/20 02:34:25
Running D:\proj\c4core\build\windows-x86_64-vs2019-Release\bm\Release\c4core-bm-charconv.exe
Run on (12 X 3400 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x6)
  L1 Instruction 32 KiB (x6)
  L2 Unified 256 KiB (x6)
  L3 Unified 15360 KiB (x1)
---------------------------------------------------------------------------------------------------------
Benchmark                                               Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------------------------
atox_c4_atox<double>                                  190 ns          188 ns      3733333 bytes_per_second=40.5093M/s items_per_second=5.30963M/s
atox_ryu_s2d<double>                                 51.3 ns         51.6 ns     10000000 bytes_per_second=147.964M/s items_per_second=19.3939M/s
atox_fast_float<double>                              31.8 ns         31.4 ns     22400000 bytes_per_second=243.056M/s items_per_second=31.8578M/s
atox_std_from_chars<double>                           190 ns          188 ns      3733333 bytes_per_second=40.5093M/s items_per_second=5.30963M/s
atox_fp_from_chars_limited<double>                   43.9 ns         43.9 ns     16000000 bytes_per_second=173.611M/s items_per_second=22.7556M/s
atox_fp_from_chars_unlimited<double>                 67.6 ns         68.4 ns     11200000 bytes_per_second=111.607M/s items_per_second=14.6286M/s
atox_std_atof<double>                                 225 ns          225 ns      3200000 bytes_per_second=33.9674M/s items_per_second=4.45217M/s
atox_std_strtod<double>                               227 ns          230 ns      2986667 bytes_per_second=33.1439M/s items_per_second=4.34424M/s
atox_std_stod<double>                                 251 ns          255 ns      2635294 bytes_per_second=29.9248M/s items_per_second=3.9223M/s
atox_scanf<double>                                    379 ns          385 ns      1866667 bytes_per_second=19.8143M/s items_per_second=2.5971M/s
atox_sstream<double, std::istringstream>             1203 ns         1200 ns       560000 bytes_per_second=6.35901M/s items_per_second=833.488k/s
atox_sstream<double, std::stringstream>              1210 ns         1228 ns       560000 bytes_per_second=6.21449M/s items_per_second=814.545k/s
atox_sstream_reuse<double, std::istringstream>        948 ns          963 ns       746667 bytes_per_second=7.92573M/s items_per_second=1038.84k/s
atox_sstream_reuse<double, std::stringstream>         949 ns          952 ns       640000 bytes_per_second=8.01282M/s items_per_second=1050.26k/s
+ for bt in Release Debug
+ for type in float double
+ build/windows-x86_64-vs2019-Debug/bm/Debug/c4core-bm-charconv.exe '--benchmark_filter=atox.*float'
11/12/20 02:34:46
Running D:\proj\c4core\build\windows-x86_64-vs2019-Debug\bm\Debug\c4core-bm-charconv.exe
Run on (12 X 3400 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x6)
  L1 Instruction 32 KiB (x6)
  L2 Unified 256 KiB (x6)
  L3 Unified 15360 KiB (x1)
***WARNING*** Library was built as DEBUG. Timings may be affected.
--------------------------------------------------------------------------------------------------------
Benchmark                                              Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------------------------
atox_c4_atox<float>                                 2835 ns         2888 ns       248889 bytes_per_second=1.32095M/s items_per_second=346.28k/s
atox_ryu_s2f<float>                                  317 ns          315 ns      2133333 bytes_per_second=12.1124M/s items_per_second=3.17519M/s
atox_fast_float<float>                               422 ns          424 ns      1659259 bytes_per_second=9.00206M/s items_per_second=2.35984M/s
atox_std_from_chars<float>                           921 ns          921 ns       746667 bytes_per_second=4.14299M/s items_per_second=1086.06k/s
atox_std_atof<float>                                 494 ns          497 ns      1445161 bytes_per_second=7.67005M/s items_per_second=2.01066M/s
atox_std_strtof<float>                               491 ns          500 ns      1000000 bytes_per_second=7.62939M/s items_per_second=2M/s
atox_std_stof<float>                                 529 ns          516 ns      1120000 bytes_per_second=7.3902M/s items_per_second=1.9373M/s
atox_scanf<float>                                    843 ns          854 ns       896000 bytes_per_second=4.46429M/s items_per_second=1.17029M/s
atox_sstream<float, std::istringstream>             5268 ns         5162 ns       112000 bytes_per_second=756.757k/s items_per_second=193.73k/s
atox_sstream<float, std::stringstream>              5357 ns         5312 ns       100000 bytes_per_second=735.294k/s items_per_second=188.235k/s
atox_sstream_reuse<float, std::istringstream>       3943 ns         3924 ns       179200 bytes_per_second=995.556k/s items_per_second=254.862k/s
atox_sstream_reuse<float, std::stringstream>        3975 ns         3899 ns       172308 bytes_per_second=1001.79k/s items_per_second=256.458k/s
atox_fast_float<double>                              430 ns          433 ns      1659259 bytes_per_second=17.6127M/s items_per_second=2.30853M/s
+ for type in float double
+ build/windows-x86_64-vs2019-Debug/bm/Debug/c4core-bm-charconv.exe '--benchmark_filter=atox.*double'
11/12/20 02:35:13
Running D:\proj\c4core\build\windows-x86_64-vs2019-Debug\bm\Debug\c4core-bm-charconv.exe
Run on (12 X 3400 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x6)
  L1 Instruction 32 KiB (x6)
  L2 Unified 256 KiB (x6)
  L3 Unified 15360 KiB (x1)
***WARNING*** Library was built as DEBUG. Timings may be affected.
---------------------------------------------------------------------------------------------------------
Benchmark                                               Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------------------------
atox_c4_atox<double>                                 4104 ns         4143 ns       165926 bytes_per_second=1.84133M/s items_per_second=241.347k/s
atox_ryu_s2d<double>                                  395 ns          393 ns      1866667 bytes_per_second=19.3927M/s items_per_second=2.54184M/s
atox_fast_float<double>                               430 ns          433 ns      1659259 bytes_per_second=17.6127M/s items_per_second=2.30853M/s
atox_std_from_chars<double>                          1182 ns         1196 ns       640000 bytes_per_second=6.37755M/s items_per_second=835.918k/s
atox_std_atof<double>                                 600 ns          600 ns      1120000 bytes_per_second=12.718M/s items_per_second=1.66698M/s
atox_std_strtod<double>                               605 ns          600 ns      1120000 bytes_per_second=12.718M/s items_per_second=1.66698M/s
atox_std_stod<double>                                 636 ns          642 ns      1120000 bytes_per_second=11.8886M/s items_per_second=1.55826M/s
atox_scanf<double>                                   1012 ns         1004 ns       746667 bytes_per_second=7.59549M/s items_per_second=995.556k/s
atox_sstream<double, std::istringstream>             6132 ns         6138 ns       112000 bytes_per_second=1.2429M/s items_per_second=162.909k/s
atox_sstream<double, std::stringstream>              6196 ns         6278 ns       112000 bytes_per_second=1.21528M/s items_per_second=159.289k/s
atox_sstream_reuse<double, std::istringstream>       4844 ns         4743 ns       112000 bytes_per_second=1.60846M/s items_per_second=210.824k/s
atox_sstream_reuse<double, std::stringstream>        4833 ns         4865 ns       144516 bytes_per_second=1.5681M/s items_per_second=205.534k/s

Linux

build

/mnt/d/proj/c4core $ export C4_EXTERN_DIR=/mnt/d/proj/extern ; \
cmany b -t Debug,Release -c clang++-10,g++-10 \
-V C4CORE_DEV=ON \
-V C4CORE_BM_FLOAT_CMP=ON \
-V C4CORE_CXX_STANDARD=17 \
-V C4CORE_SANITIZE=OFF . c4core-bm-charconv c4core-bm-readfloat --continue

binary sizes

/mnt/d/proj/c4core $ for i in build/linux* ; do echo ; echo "$i -------------------------------" ; cat $(find $i -name "c4core*dat") ; done

build/linux-x86_64-clangxx10.0-Debug -------------------------------
c4core-bm-readfloat-baseline: {compile: 0.350s, file_size: 11592B}
c4core-bm-readfloat-fast_float_d: {compile: 0.612s, file_size: 1344808B}
c4core-bm-readfloat-fast_float_f: {compile: 0.576s, file_size: 1344792B}
c4core-bm-readfloat-fast_fp_d_limited: {compile: 0.310s, file_size: 166512B}
c4core-bm-readfloat-fast_fp_d_unlimited: {compile: 0.323s, file_size: 224408B}
c4core-bm-readfloat-fast_fp_f_limited: {compile: 0.299s, file_size: 42216B}
c4core-bm-readfloat-fast_fp_f_unlimited: {compile: 0.310s, file_size: 61376B}
c4core-bm-readfloat-iostream_d: {compile: 0.680s, file_size: 1255328B}
c4core-bm-readfloat-iostream_f: {compile: 0.713s, file_size: 1255328B}
c4core-bm-readfloat-ryu_d: {compile: 0.316s, file_size: 33048B}
c4core-bm-readfloat-ryu_f: {compile: 0.294s, file_size: 33256B}
c4core-bm-readfloat-sscanf_d: {compile: 0.345s, file_size: 11840B}
c4core-bm-readfloat-sscanf_f: {compile: 0.361s, file_size: 11832B}
c4core-bm-readfloat-std_atof: {compile: 0.345s, file_size: 13752B}

build/linux-x86_64-clangxx10.0-Release -------------------------------
c4core-bm-readfloat-baseline: {compile: 0.342s, file_size: 8408B}
c4core-bm-readfloat-fast_float_d: {compile: 0.540s, file_size: 1294288B}
c4core-bm-readfloat-fast_float_f: {compile: 0.513s, file_size: 1290192B}
c4core-bm-readfloat-fast_fp_d_limited: {compile: 0.326s, file_size: 131736B}
c4core-bm-readfloat-fast_fp_d_unlimited: {compile: 0.257s, file_size: 173008B}
c4core-bm-readfloat-fast_fp_f_limited: {compile: 0.313s, file_size: 13064B}
c4core-bm-readfloat-fast_fp_f_unlimited: {compile: 0.306s, file_size: 17392B}
c4core-bm-readfloat-iostream_d: {compile: 0.685s, file_size: 1243296B}
c4core-bm-readfloat-iostream_f: {compile: 0.669s, file_size: 1243296B}
c4core-bm-readfloat-ryu_d: {compile: 0.312s, file_size: 20960B}
c4core-bm-readfloat-ryu_f: {compile: 0.313s, file_size: 20960B}
c4core-bm-readfloat-sscanf_d: {compile: 0.337s, file_size: 8496B}
c4core-bm-readfloat-sscanf_f: {compile: 0.336s, file_size: 8496B}
c4core-bm-readfloat-std_atof: {compile: 0.362s, file_size: 8496B}

build/linux-x86_64-gxx10-Debug -------------------------------
c4core-bm-readfloat-baseline: {compile: 0.297s, file_size: 12744B}
c4core-bm-readfloat-fast_float_d: {compile: 0.500s, file_size: 1419768B}
c4core-bm-readfloat-fast_float_f: {compile: 0.518s, file_size: 1419736B}
c4core-bm-readfloat-fast_fp_d_limited: {compile: 0.219s, file_size: 77984B}
c4core-bm-readfloat-fast_fp_d_unlimited: {compile: 0.215s, file_size: 181768B}
c4core-bm-readfloat-fast_fp_f_limited: {compile: 0.220s, file_size: 53720B}
c4core-bm-readfloat-fast_fp_f_unlimited: {compile: 0.217s, file_size: 76520B}
c4core-bm-readfloat-iostream_d: {compile: 0.576s, file_size: 1325016B}
c4core-bm-readfloat-iostream_f: {compile: 0.565s, file_size: 1325016B}
c4core-bm-readfloat-ryu_d: {compile: 0.249s, file_size: 34672B}
c4core-bm-readfloat-ryu_f: {compile: 0.262s, file_size: 34864B}
c4core-bm-readfloat-sscanf_d: {compile: 0.288s, file_size: 12984B}
c4core-bm-readfloat-sscanf_f: {compile: 0.289s, file_size: 12976B}
c4core-bm-readfloat-std_atof: {compile: 0.289s, file_size: 14784B}

build/linux-x86_64-gxx10-Release -------------------------------
c4core-bm-readfloat-baseline: {compile: 0.291s, file_size: 8480B}
c4core-bm-readfloat-fast_float_d: {compile: 0.458s, file_size: 1358976B}
c4core-bm-readfloat-fast_float_f: {compile: 0.429s, file_size: 1358976B}
c4core-bm-readfloat-fast_fp_d_limited: {compile: 0.213s, file_size: 21112B}
c4core-bm-readfloat-fast_fp_d_unlimited: {compile: 0.184s, file_size: 66488B}
c4core-bm-readfloat-fast_fp_f_limited: {compile: 0.198s, file_size: 12920B}
c4core-bm-readfloat-fast_fp_f_unlimited: {compile: 0.213s, file_size: 17256B}
c4core-bm-readfloat-iostream_d: {compile: 0.569s, file_size: 1312352B}
c4core-bm-readfloat-iostream_f: {compile: 0.502s, file_size: 1312352B}
c4core-bm-readfloat-ryu_d: {compile: 0.243s, file_size: 21024B}
c4core-bm-readfloat-ryu_f: {compile: 0.221s, file_size: 21064B}
c4core-bm-readfloat-sscanf_d: {compile: 0.289s, file_size: 8560B}
c4core-bm-readfloat-sscanf_f: {compile: 0.285s, file_size: 8560B}
c4core-bm-readfloat-std_atof: {compile: 0.300s, file_size: 8560B}

read throughput (on WSL):

$ /mnt/d/proj/c4core $ for cc in clangxx10.0 gxx10 ; do for bt in Release Debug ; do  for type in float double ; do build/linux-x86_64-$cc-$bt/bm/c4core-bm-charconv --benchmark_filter="atox.*$type" ; done ; done ; done
2020-11-12 02:07:23
Running build/linux-x86_64-clangxx10.0-Release/bm/c4core-bm-charconv
Run on (12 X 3401 MHz CPU s)
Load Average: 0.52, 0.58, 0.59
--------------------------------------------------------------------------------------------------------
Benchmark                                              Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------------------------
atox_c4_atox<float>                                  331 ns          330 ns      2133333 bytes_per_second=11.5741M/s items_per_second=3.03407M/s
atox_ryu_s2f<float>                                 33.7 ns         33.8 ns     20363636 bytes_per_second=112.991M/s items_per_second=29.6198M/s
atox_fast_float<float>                              21.1 ns         20.9 ns     34461538 bytes_per_second=182.901M/s items_per_second=47.9465M/s
atox_fp_from_chars_limited<float>                   26.2 ns         26.1 ns     26352941 bytes_per_second=146.223M/s items_per_second=38.3316M/s
atox_fp_from_chars_unlimited<float>                 46.7 ns         46.0 ns     14933333 bytes_per_second=82.8598M/s items_per_second=21.7212M/s
atox_std_atof<float>                                8.85 ns         8.89 ns     89600000 bytes_per_second=428.922M/s items_per_second=112.439M/s
atox_std_strtof<float>                               110 ns          110 ns      6400000 bytes_per_second=34.7222M/s items_per_second=9.10222M/s
atox_std_stof<float>                                 109 ns          107 ns      6400000 bytes_per_second=35.5114M/s items_per_second=9.30909M/s
atox_scanf<float>                                    213 ns          215 ns      3200000 bytes_per_second=17.7557M/s items_per_second=4.65455M/s
atox_sstream<float, std::istringstream>              479 ns          476 ns      1445161 bytes_per_second=8.01869M/s items_per_second=2.10205M/s
atox_sstream<float, std::stringstream>               567 ns          572 ns      1120000 bytes_per_second=6.66921M/s items_per_second=1.74829M/s
atox_sstream_reuse<float, std::istringstream>        255 ns          257 ns      2488889 bytes_per_second=14.8205M/s items_per_second=3.8851M/s
atox_sstream_reuse<float, std::stringstream>         257 ns          257 ns      2800000 bytes_per_second=14.8607M/s items_per_second=3.89565M/s
atox_fast_float<double>                             21.2 ns         21.3 ns     34461538 bytes_per_second=358.02M/s items_per_second=46.9263M/s
2020-11-12 02:07:39
Running build/linux-x86_64-clangxx10.0-Release/bm/c4core-bm-charconv
Run on (12 X 3401 MHz CPU s)
Load Average: 0.52, 0.58, 0.59
---------------------------------------------------------------------------------------------------------
Benchmark                                               Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------------------------
atox_c4_atox<double>                                  330 ns          330 ns      2133333 bytes_per_second=23.1481M/s items_per_second=3.03407M/s
atox_ryu_s2d<double>                                 35.7 ns         35.3 ns     19478261 bytes_per_second=216.156M/s items_per_second=28.332M/s
atox_fast_float<double>                              21.1 ns         21.3 ns     34461538 bytes_per_second=358.02M/s items_per_second=46.9263M/s
atox_fp_from_chars_limited<double>                   26.1 ns         26.2 ns     28000000 bytes_per_second=290.891M/s items_per_second=38.1277M/s
atox_fp_from_chars_unlimited<double>                 47.7 ns         48.7 ns     14451613 bytes_per_second=156.81M/s items_per_second=20.5534M/s
atox_std_atof<double>                                8.85 ns         8.79 ns     74666667 bytes_per_second=868.056M/s items_per_second=113.778M/s
atox_std_strtod<double>                               110 ns          110 ns      6400000 bytes_per_second=69.4444M/s items_per_second=9.10222M/s
atox_std_stod<double>                                 111 ns          110 ns      6400000 bytes_per_second=69.4444M/s items_per_second=9.10222M/s
atox_scanf<double>                                    210 ns          209 ns      3446154 bytes_per_second=36.5803M/s items_per_second=4.79465M/s
atox_sstream<double, std::istringstream>              474 ns          471 ns      1493333 bytes_per_second=16.2037M/s items_per_second=2.12385M/s
atox_sstream<double, std::stringstream>               557 ns          558 ns      1120000 bytes_per_second=13.6719M/s items_per_second=1.792M/s
atox_sstream_reuse<double, std::istringstream>        252 ns          255 ns      2635294 bytes_per_second=29.9248M/s items_per_second=3.9223M/s
atox_sstream_reuse<double, std::stringstream>         255 ns          257 ns      2800000 bytes_per_second=29.7215M/s items_per_second=3.89565M/s
2020-11-12 02:07:53
Running build/linux-x86_64-clangxx10.0-Debug/bm/c4core-bm-charconv
Run on (12 X 3401 MHz CPU s)
Load Average: 0.52, 0.58, 0.59
***WARNING*** Library was built as DEBUG. Timings may be affected.
--------------------------------------------------------------------------------------------------------
Benchmark                                              Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------------------------
atox_c4_atox<float>                                 1015 ns         1025 ns       640000 bytes_per_second=3.72024M/s items_per_second=975.238k/s
atox_ryu_s2f<float>                                  106 ns          107 ns      7466667 bytes_per_second=35.7435M/s items_per_second=9.36994M/s
atox_fast_float<float>                              76.1 ns         76.7 ns      8960000 bytes_per_second=49.7159M/s items_per_second=13.0327M/s
atox_std_atof<float>                                 132 ns          132 ns      4977778 bytes_per_second=28.9352M/s items_per_second=7.58519M/s
atox_std_strtof<float>                               133 ns          134 ns      5600000 bytes_per_second=28.4831M/s items_per_second=7.46667M/s
atox_std_stof<float>                                 139 ns          140 ns      5600000 bytes_per_second=27.3438M/s items_per_second=7.168M/s
atox_scanf<float>                                    240 ns          241 ns      2986667 bytes_per_second=15.8515M/s items_per_second=4.15536M/s
atox_sstream<float, std::istringstream>              494 ns          500 ns      1000000 bytes_per_second=7.62939M/s items_per_second=2M/s
atox_sstream<float, std::stringstream>               579 ns          586 ns      1120000 bytes_per_second=6.51042M/s items_per_second=1.70667M/s
atox_sstream_reuse<float, std::istringstream>        268 ns          267 ns      2635294 bytes_per_second=14.2974M/s items_per_second=3.74797M/s
atox_sstream_reuse<float, std::stringstream>         274 ns          273 ns      2635294 bytes_per_second=13.9866M/s items_per_second=3.6665M/s
atox_fast_float<double>                             74.0 ns         73.2 ns      8960000 bytes_per_second=104.167M/s items_per_second=13.6533M/s
2020-11-12 02:08:04
Running build/linux-x86_64-clangxx10.0-Debug/bm/c4core-bm-charconv
Run on (12 X 3401 MHz CPU s)
Load Average: 0.52, 0.58, 0.59
***WARNING*** Library was built as DEBUG. Timings may be affected.
---------------------------------------------------------------------------------------------------------
Benchmark                                               Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------------------------
atox_c4_atox<double>                                 1099 ns         1099 ns       640000 bytes_per_second=6.94444M/s items_per_second=910.222k/s
atox_ryu_s2d<double>                                  113 ns          112 ns      6400000 bytes_per_second=67.9348M/s items_per_second=8.90435M/s
atox_fast_float<double>                              74.3 ns         73.2 ns      8960000 bytes_per_second=104.167M/s items_per_second=13.6533M/s
atox_std_atof<double>                                 132 ns          132 ns      4977778 bytes_per_second=57.8704M/s items_per_second=7.58519M/s
atox_std_strtod<double>                               132 ns          131 ns      5600000 bytes_per_second=58.1782M/s items_per_second=7.62553M/s
atox_std_stod<double>                                 146 ns          144 ns      4977778 bytes_per_second=52.8382M/s items_per_second=6.9256M/s
atox_scanf<double>                                    241 ns          241 ns      2986667 bytes_per_second=31.7029M/s items_per_second=4.15536M/s
atox_sstream<double, std::istringstream>              492 ns          488 ns      1120000 bytes_per_second=15.625M/s items_per_second=2.048M/s
atox_sstream<double, std::stringstream>               575 ns          572 ns      1120000 bytes_per_second=13.3384M/s items_per_second=1.74829M/s
atox_sstream_reuse<double, std::istringstream>        267 ns          273 ns      2635294 bytes_per_second=27.9731M/s items_per_second=3.6665M/s
atox_sstream_reuse<double, std::stringstream>         272 ns          270 ns      2488889 bytes_per_second=28.2623M/s items_per_second=3.70439M/s
2020-11-12 02:08:15
Running build/linux-x86_64-gxx10-Release/bm/c4core-bm-charconv
Run on (12 X 3401 MHz CPU s)
Load Average: 0.52, 0.58, 0.59
--------------------------------------------------------------------------------------------------------
Benchmark                                              Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------------------------
atox_c4_atox<float>                                  333 ns          330 ns      2133333 bytes_per_second=11.5741M/s items_per_second=3.03407M/s
atox_ryu_s2f<float>                                 34.4 ns         33.8 ns     20363636 bytes_per_second=112.991M/s items_per_second=29.6198M/s
atox_fast_float<float>                              23.2 ns         22.9 ns     32000000 bytes_per_second=166.223M/s items_per_second=43.5745M/s
atox_fp_from_chars_limited<float>                   8.81 ns         8.89 ns     89600000 bytes_per_second=428.922M/s items_per_second=112.439M/s
atox_fp_from_chars_unlimited<float>                 8.82 ns         9.00 ns     74666667 bytes_per_second=423.934M/s items_per_second=111.132M/s
atox_std_atof<float>                                 111 ns          112 ns      6400000 bytes_per_second=33.9674M/s items_per_second=8.90435M/s
atox_std_strtof<float>                               109 ns          107 ns      6400000 bytes_per_second=35.5114M/s items_per_second=9.30909M/s
atox_std_stof<float>                                 110 ns          110 ns      6400000 bytes_per_second=34.7222M/s items_per_second=9.10222M/s
atox_scanf<float>                                    213 ns          215 ns      3200000 bytes_per_second=17.7557M/s items_per_second=4.65455M/s
atox_sstream<float, std::istringstream>              474 ns          471 ns      1493333 bytes_per_second=8.10185M/s items_per_second=2.12385M/s
atox_sstream<float, std::stringstream>               559 ns          558 ns      1120000 bytes_per_second=6.83594M/s items_per_second=1.792M/s
atox_sstream_reuse<float, std::istringstream>        254 ns          251 ns      2800000 bytes_per_second=15.191M/s items_per_second=3.98222M/s
atox_sstream_reuse<float, std::stringstream>         262 ns          261 ns      2635294 bytes_per_second=14.6223M/s items_per_second=3.83315M/s
atox_fast_float<double>                             22.6 ns         22.5 ns     29866667 bytes_per_second=339.147M/s items_per_second=44.4527M/s
2020-11-12 02:08:29
Running build/linux-x86_64-gxx10-Release/bm/c4core-bm-charconv
Run on (12 X 3401 MHz CPU s)
Load Average: 0.52, 0.58, 0.59
---------------------------------------------------------------------------------------------------------
Benchmark                                               Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------------------------
atox_c4_atox<double>                                  344 ns          345 ns      2036364 bytes_per_second=22.096M/s items_per_second=2.89616M/s
atox_ryu_s2d<double>                                 34.3 ns         33.8 ns     20363636 bytes_per_second=225.981M/s items_per_second=29.6198M/s
atox_fast_float<double>                              22.6 ns         22.5 ns     32000000 bytes_per_second=339.674M/s items_per_second=44.5217M/s
atox_fp_from_chars_limited<double>                   8.82 ns         8.79 ns     74666667 bytes_per_second=868.056M/s items_per_second=113.778M/s
atox_fp_from_chars_unlimited<double>                 8.81 ns         8.89 ns     89600000 bytes_per_second=857.843M/s items_per_second=112.439M/s
atox_std_atof<double>                                 110 ns          112 ns      6400000 bytes_per_second=67.9348M/s items_per_second=8.90435M/s
atox_std_strtod<double>                               113 ns          115 ns      6400000 bytes_per_second=66.4894M/s items_per_second=8.71489M/s
atox_std_stod<double>                                 112 ns          112 ns      6400000 bytes_per_second=67.9348M/s items_per_second=8.90435M/s
atox_scanf<double>                                    209 ns          209 ns      3446154 bytes_per_second=36.5803M/s items_per_second=4.79465M/s
atox_sstream<double, std::istringstream>              475 ns          471 ns      1493333 bytes_per_second=16.2037M/s items_per_second=2.12385M/s
atox_sstream<double, std::stringstream>               584 ns          586 ns      1120000 bytes_per_second=13.0208M/s items_per_second=1.70667M/s
atox_sstream_reuse<double, std::istringstream>        253 ns          251 ns      2800000 bytes_per_second=30.3819M/s items_per_second=3.98222M/s
atox_sstream_reuse<double, std::stringstream>         255 ns          255 ns      2635294 bytes_per_second=29.9248M/s items_per_second=3.9223M/s
2020-11-12 02:08:43
Running build/linux-x86_64-gxx10-Debug/bm/c4core-bm-charconv
Run on (12 X 3401 MHz CPU s)
Load Average: 0.52, 0.58, 0.59
***WARNING*** Library was built as DEBUG. Timings may be affected.
--------------------------------------------------------------------------------------------------------
Benchmark                                              Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------------------------
atox_c4_atox<float>                                  959 ns          977 ns       640000 bytes_per_second=3.90625M/s items_per_second=1024k/s
atox_ryu_s2f<float>                                  101 ns          100 ns      7466667 bytes_per_second=37.9774M/s items_per_second=9.95556M/s
atox_fast_float<float>                              62.0 ns         62.8 ns     11200000 bytes_per_second=60.7639M/s items_per_second=15.9289M/s
atox_std_atof<float>                                 136 ns          135 ns      4977778 bytes_per_second=28.2623M/s items_per_second=7.40879M/s
atox_std_strtof<float>                               134 ns          134 ns      5600000 bytes_per_second=28.4831M/s items_per_second=7.46667M/s
atox_std_stof<float>                                 138 ns          138 ns      4977778 bytes_per_second=27.62M/s items_per_second=7.2404M/s
atox_scanf<float>                                    241 ns          241 ns      2986667 bytes_per_second=15.8515M/s items_per_second=4.15536M/s
atox_sstream<float, std::istringstream>              536 ns          530 ns      1120000 bytes_per_second=7.19572M/s items_per_second=1.88632M/s
atox_sstream<float, std::stringstream>               638 ns          642 ns      1120000 bytes_per_second=5.94429M/s items_per_second=1.55826M/s
atox_sstream_reuse<float, std::istringstream>        268 ns          267 ns      2635294 bytes_per_second=14.2974M/s items_per_second=3.74797M/s
atox_sstream_reuse<float, std::stringstream>         273 ns          270 ns      2488889 bytes_per_second=14.1311M/s items_per_second=3.70439M/s
atox_fast_float<double>                             59.7 ns         60.0 ns     11200000 bytes_per_second=127.18M/s items_per_second=16.6698M/s
2020-11-12 02:08:54
Running build/linux-x86_64-gxx10-Debug/bm/c4core-bm-charconv
Run on (12 X 3401 MHz CPU s)
Load Average: 0.52, 0.58, 0.59
***WARNING*** Library was built as DEBUG. Timings may be affected.
---------------------------------------------------------------------------------------------------------
Benchmark                                               Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------------------------
atox_c4_atox<double>                                  962 ns          963 ns       746667 bytes_per_second=7.92573M/s items_per_second=1038.84k/s
atox_ryu_s2d<double>                                  103 ns          105 ns      7466667 bytes_per_second=72.9167M/s items_per_second=9.55733M/s
atox_fast_float<double>                              59.8 ns         58.6 ns     11200000 bytes_per_second=130.208M/s items_per_second=17.0667M/s
atox_std_atof<double>                                 134 ns          132 ns      4977778 bytes_per_second=57.8704M/s items_per_second=7.58519M/s
atox_std_strtod<double>                               135 ns          135 ns      4977778 bytes_per_second=56.5246M/s items_per_second=7.40879M/s
atox_std_stod<double>                                 139 ns          141 ns      4977778 bytes_per_second=54.0123M/s items_per_second=7.07951M/s
atox_scanf<double>                                    242 ns          240 ns      2800000 bytes_per_second=31.7951M/s items_per_second=4.16744M/s
atox_sstream<double, std::istringstream>              489 ns          487 ns      1445161 bytes_per_second=15.681M/s items_per_second=2.05534M/s
atox_sstream<double, std::stringstream>               573 ns          572 ns      1120000 bytes_per_second=13.3384M/s items_per_second=1.74829M/s
atox_sstream_reuse<double, std::istringstream>        267 ns          267 ns      2635294 bytes_per_second=28.5948M/s items_per_second=3.74797M/s
atox_sstream_reuse<double, std::stringstream>         270 ns          270 ns      2488889 bytes_per_second=28.2623M/s items_per_second=3.70439M/s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment