On Tuesday, 22 December 2015 at 18:11:24 UTC, rumbu wrote:
On Tuesday, 22 December 2015 at 17:15:27 UTC, Andrew Chapman
wrote:
Sorry if this is a silly question but is the to! method from
the conv library the most efficient way of converting an
integer value to a string?
e.g.
string s = to!string(100);
I'm seeing a pretty dramatic slow down in my code when I use a
conversion like this (when looped over 10 million iterations
for benchmarking).
Cheers!
Converting numbers to string involves the most expensive known
two operations : division and modulus by 10.
When the base is known in advance, division and modulus can be
substituted by a few additions, subtractions and bit shifts. For
example, the Hacker's Delight book has a chapter dedicated to
that, as well as a freely available additional chapter
(www.hackersdelight.org/divcMore.pdf).
Does DMD, or Phobos function to!(string), do anything like that?
The number of possible bases is not large anyway. I've heard
major C/C++ compilers do that, but have not looked for a proof
myself.