On Mon, 20 Jul 2009 20:41:03 -0400, Walter Bright
<[email protected]> wrote:
bearophile wrote:
Then we have to work on the efficiency of its implementation :-) (See
my timings lower in this thread).
I've implemented printf. There is nothing fundamental about its
efficiency that would be any better than writefln. If writefln is
slower, it's due to a bug, not anything fundamental.
Part of it could be fundamental.
* D deals with UTF, whereas printf does not
* Phobos calls the C runtime, so it's guaranteed never to beat printf,
since printf is not type-safe, and therefore does less.
* Both Tango and Phobos output functions make use of delegates to output
data. In the case of Phobos, it uses a delegate to call the C runtime's
"delegate" fputc, so it's going to be double the delegate penalty for each
character.
If you're measuring the performance of millions of writes, then you will
see even a slight difference.
Bearophile,
You may want to develop a more specialized function to do file output if
you are writing such large quantities of uniform data, calling the system
calls directly, it might even beat printf.
-Steve