On Tuesday, 22 December 2015 at 20:52:07 UTC, rumbu wrote:
On Tuesday, 22 December 2015 at 19:45:46 UTC, Daniel Kozák wrote:
V Tue, 22 Dec 2015 18:11:24 +0000
rumbu via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com>
napsáno:

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.

No, IIRC few months or maybe years I have optimize this so it does not use division and modulus

It's using division and modulus, as expected:

https://github.com/D-Programming-Language/phobos/blob/master/std/conv.d#L5529

If the compiler is smart enough, maybe it will replace this by well known multiplication trick.

Tested it, I was right:

No optimizations: two divisions, one for the modulus and one for the division itself
Optimized: multiplication by 0xCCCCCCCD trick.

http://imgur.com/a/lHeHe




Reply via email to