question when writing to a file

bioinfornatics bioinfornatics at fedoraproject.org
Thu Mar 7 08:12:08 PST 2013


On Thursday, 7 March 2013 at 13:37:56 UTC, lomereiter wrote:
> 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?

and if is not stdout but File ?

thanks a lot that is really interesting


More information about the Digitalmars-d-learn mailing list