Tests were run for converting 100000 string containing doubles in the range +/- 99999.99999. The result for the naive loop and atof() are set as the baseline 100% and the other numbers is time spent relative to those. The naive loop wins by a large margin, but Boost.Spirit is the fastest correct implementation.

I was using /O2 /Ot, but changed to /Ox /Ot and updated the table. It’s a bit faster. Relatively, it’s the same though…these benchmarks aren’t about the absolutely fastest compiler or settings, but more about the overall faster method.