|
|
|
|
|
by blux
620 days ago
|
|
I wrote this library once; https://github.com/ton/fast_int. Removed `std::atoi` from the benchmarks since it was performing so poorly; not a contender. Should be easy to verify. Rough results (last column is #iterations): BM_fast_int<std::int64_t>/10 1961 ns 1958 ns 355081
BM_fast_int<std::int64_t>/100 2973 ns 2969 ns 233953
BM_fast_int<std::int64_t>/1000 3636 ns 3631 ns 186585
BM_fast_int<std::int64_t>/10000 4314 ns 4309 ns 161831
BM_fast_int<std::int64_t>/100000 5184 ns 5179 ns 136308
BM_fast_int<std::int64_t>/1000000 5867 ns 5859 ns 119398
BM_fast_int_swar<std::int64_t>/10 2235 ns 2232 ns 316949
BM_fast_int_swar<std::int64_t>/100 3446 ns 3441 ns 206437
BM_fast_int_swar<std::int64_t>/1000 3561 ns 3556 ns 197795
BM_fast_int_swar<std::int64_t>/10000 3650 ns 3646 ns 188613
BM_fast_int_swar<std::int64_t>/100000 4248 ns 4243 ns 165313
BM_fast_int_swar<std::int64_t>/1000000 4979 ns 4973 ns 140722
BM_atoi<std::int64_t>/10 10248 ns 10234 ns 69021
BM_atoi<std::int64_t>/100 10996 ns 10985 ns 63810
BM_atoi<std::int64_t>/1000 12238 ns 12225 ns 56556
BM_atoi<std::int64_t>/10000 13606 ns 13589 ns 51645
BM_atoi<std::int64_t>/100000 14984 ns 14964 ns 47046
BM_atoi<std::int64_t>/1000000 16226 ns 16206 ns 43279
BM_from_chars<std::int64_t>/10 2162 ns 2160 ns 302880
BM_from_chars<std::int64_t>/100 2410 ns 2407 ns 282778
BM_from_chars<std::int64_t>/1000 3309 ns 3306 ns 208070
BM_from_chars<std::int64_t>/10000 5034 ns 5028 ns 100000
BM_from_chars<std::int64_t>/100000 6282 ns 6275 ns 107023
BM_from_chars<std::int64_t>/1000000 7267 ns 7259 ns 96114
BM_fast_float<std::int64_t>/10 2670 ns 2666 ns 262721
BM_fast_float<std::int64_t>/100 3547 ns 3542 ns 196704
BM_fast_float<std::int64_t>/1000 4643 ns 4638 ns 154391
BM_fast_float<std::int64_t>/10000 5056 ns 5050 ns 132722
BM_fast_float<std::int64_t>/100000 6207 ns 6200 ns 111565
BM_fast_float<std::int64_t>/1000000 7113 ns 7105 ns 98847
|
|