std.conv.to!string(float) Is too heavy
Stefan Koch
uplink.coder at googlemail.com
Tue Oct 12 16:05:19 UTC 2021
On Tuesday, 12 October 2021 at 14:47:21 UTC, Hipreme wrote:
> I have wrote a simple hello world using std.conv:
>
>
> ```
> import std.conv:to;
> import std.stdio;
>
> export void MAIN(float b)
> {
> writeln("Hello World " ~ to!string(b));
> }
> ```
>
> Building that with dmd app.d -lib creates 500KB lib
> With `-g`, it goes up to 800KB
>
> Using ldc, the build time goes up by 2 times.
>
> if you simply change from `float b` to `int b`, the lib goes
> down from 500KB to 60KB.
> The build times decreases by almost 10x (must check), but I can
> feel that anyway.
>
> Using std.conv greatly degrades a modularized workflow, by
> increasing a lot of build time and binary size. I needed
> implementing my own to! function to get a much better build
> time for my program.
`writeln` itself even for plain strings is already quite heavy.
I'd recommend using printf.
I also have a realtively lightweight `dtoa` function.
it's here:
https://raw.githubusercontent.com/UplinkCoder/fpconv/master/src/fpconv_ctfe.d
More information about the Digitalmars-d
mailing list