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

Reply via email to