V Tue, 22 Dec 2015 20:52:07 +0000 rumbu via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> napsáno:
> 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. Yes compiler is smart enought so it will not use division and modulus as I say before :)