On 6/12/2013 10:07 AM, Andrei Alexandrescu wrote:
On 6/12/13 12:40 PM, Walter Bright wrote:
You are proposing that this repeated write of the first sector be done
for all file output.
No, he's proposing that only the very first write flushes. Not every write. I'd
argue it's a bizarre thing to do, but not that it's necessarily slow.
I meant for every file being output.
And, again, it is forcing two writes of the first block, at a minimum. The perf
cost can be hidden by write caching, but to rely on that is bad design and
undermines how the I/O system is set up and tuned.
I predict a WTF bug report on this in the future, as someone with an unusual
device attached is looking for the cause of why his D program writing to it
behaves badly. Or he just writes it off as "D sux".
There's a *reason* why stdio distinguishes between block devices and character
devices.