File I/O performance pitfalls
rikki cattermole
rikki at cattermole.co.nz
Sat Oct 26 02:42:04 UTC 2019
On 26/10/2019 2:27 PM, 9898287 wrote:
> Hi I want to find out what's causing my file writes to be so slow. I'm
> setting up buffer and locking the file and writing them to the file.
>
> $ cat d.d && ldc2 -O5 d.d && time ./d >> /dev/null
You probably want -O3 not -O5.
> void main() {
> import std.stdio;
> stdout.setvbuf(4096);
> stdout.lock();
>
> foreach(i; 0 .. 900_000_000)
> writef("Hello, {}\n", i);
I assume what you intended is:
writeln("Hello, ", i);
Also for format functions in D you should prefer the templated variation
as it provides compile time verification of arguments e.g.
writef!"Hello, {}\n%d"(i);
Please note that {} is not a format specifier.
printf style functions (which is what Phobos uses as the basis) for
format specifiers begin with a percentage sign.
More information about the Digitalmars-d-learn
mailing list