The second is probably faster (with optimizations enabled),
because each call to writeln incurs overhead of locking/unlocking
the file stream (which is stdout in this case).
If you need to print huge amounts of data, use lockingTextWriter
like this:
auto w = stdout.lockingTextWriter;
foreach (i; 0 .. 5) {
w.put("sometext\n");
w.formattedwrite("%d\n", some_number);
}
However, std.format.formattedWrite is also relatively slow, so
it's better to prepare string representation of an object in a
buffer on the stack - say, with snprintf, or your own set of
formatting functions - and then put it into the writer.
On Thursday, 7 March 2013 at 10:04:34 UTC, bioinfornatics wrote:
Dear,
little question when writing to a file 5 "hello" lines (by
example)
I would like to know if they are a difference between:
writeln( "hello" ); x5
and:
string[] helloList = [ "hello","hello","hello","hello","hello"];
writeln( helloList.join( newline) );
I mean if one way is more efficient by speed?