You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
0 dependency header only - as in absolutely no dependencies on ANY other headers
fast - fasted tested on vs2019 in x86 and x64 for all digit lengths, uniform random bits, and uniform random digit lengths (latest version is even 25% faster than before) using https://github.com/jeaiii/itoa-benchmark
small - simple code that produces good compiled code even in debug builds (no nested functions)
compiles on clang, msvc, and gcc as C++11 or later
written to specialize well based on integer type (size, signed, unsigned) and possible values determined at compile time
Thanks to Junekey Jeon for the great write-up here, providing better insight into more rigorous mathematical foundations which eliminated an unneeded addition, and renewing my interest into making an even faster version
Disclaimer: This is not a good way to benchmark. It's not very repeatable and google benchmark is compiled in debug, although fmt being mostly header is optimized and inlined well. The performance charts below are much more accurate.
-----------------------------------------------------
Benchmark Time CPU Iterations
-----------------------------------------------------
BM_fmt 16.6 ns 10.5 ns 75504520
BM_jea 10.2 ns 4.13 ns 159688774