D - performance enhancements to std.stream
- Ben Hinkle (16/16) Mar 30 2004 I've put up a modified version of std.stream that buffers files
- Ben Hinkle (9/25) Mar 31 2004 an update: linux works fine. I also took out the dprintf
- Kris (3/33) Apr 01 2004 10x performance? Nice job Ben!
I've put up a modified version of std.stream that buffers files on Windows and has other tweaks that result in 10x performance improvement on some large test files I threw at it. http://home.comcast.net/~benhinkle/stream.d I've banged on it a bit on Windows but I can't seem to get it running on linux yet - when you try to use a stream it seg-v's. Give it a shot - it should be backwards compatible except for a few deprecated features that I think we should remove. There are probably plenty of bugs in the buffering code when you mix reads and write and seeks since the flushing logic is kinda messy (ps - why aren't there flush calls in windows.d and linux.d?) I also started in on an experimental stream.dprintf that prints D strings using %s and D Objects using %D. Objects are stringified by calling toString. -Ben
Mar 30 2004
an update: linux works fine. I also took out the dprintf stuff for now until I have more time - plus I'd like to see how it compares to just using regular printf. On linux though the buffering didn't give any speed improvements so it must be that the OS already buffers. I had actually though windows buffered, too, but I guess not since it seems to make such a big difference. On Tue, 30 Mar 2004 21:18:09 -0500, Ben Hinkle <bhinkle4 juno.com> wrote:I've put up a modified version of std.stream that buffers files on Windows and has other tweaks that result in 10x performance improvement on some large test files I threw at it. http://home.comcast.net/~benhinkle/stream.d I've banged on it a bit on Windows but I can't seem to get it running on linux yet - when you try to use a stream it seg-v's. Give it a shot - it should be backwards compatible except for a few deprecated features that I think we should remove. There are probably plenty of bugs in the buffering code when you mix reads and write and seeks since the flushing logic is kinda messy (ps - why aren't there flush calls in windows.d and linux.d?) I also started in on an experimental stream.dprintf that prints D strings using %s and D Objects using %D. Objects are stringified by calling toString. -Ben
Mar 31 2004
10x performance? Nice job Ben! "Ben Hinkle" <bhinkle4 juno.com> wrote in message news:3r0n605cm7v0ncjnbv7oe0jdcku4b17ksa 4ax.com...an update: linux works fine. I also took out the dprintf stuff for now until I have more time - plus I'd like to see how it compares to just using regular printf. On linux though the buffering didn't give any speed improvements so it must be that the OS already buffers. I had actually though windows buffered, too, but I guess not since it seems to make such a big difference. On Tue, 30 Mar 2004 21:18:09 -0500, Ben Hinkle <bhinkle4 juno.com> wrote:I've put up a modified version of std.stream that buffers files on Windows and has other tweaks that result in 10x performance improvement on some large test files I threw at it. http://home.comcast.net/~benhinkle/stream.d I've banged on it a bit on Windows but I can't seem to get it running on linux yet - when you try to use a stream it seg-v's. Give it a shot - it should be backwards compatible except for a few deprecated features that I think we should remove. There are probably plenty of bugs in the buffering code when you mix reads and write and seeks since the flushing logic is kinda messy (ps - why aren't there flush calls in windows.d and linux.d?) I also started in on an experimental stream.dprintf that prints D strings using %s and D Objects using %D. Objects are stringified by calling toString. -Ben
Apr 01 2004