Programming, Software and Code

IO Pudding, Contains Proof

I've been spending a lot of my time working on IO-related improvements to Parrot. I'm still working hard at the major refactors branch that I started with Infinoid, so I haven't taken any time to benchmark anything yet, and working through some of the changes that Allison suggested. However, Infinoid did run a quick test this evening:

infinoid> oh, wow
infinoid> I hacked examples/streams/ParrotIO.pir to read one of the biggest files in the tree I
could find (t/library/md5_4.pir) instead of the default (itself)
whiteknight> ...and?
infinoid> infinoid@chirp test % time ./parrot examples/streams/ParrotIO.pir >/dev/null
infinoid> ./parrot examples/streams/ParrotIO.pir > /dev/null 0.79s user 0.04s system 94% cpu 0.883 total
infinoid> infinoid@chirp io_rewiring % time ./parrot examples/streams/ParrotIO.pir >/dev/null
infinoid> ./parrot examples/streams/ParrotIO.pir > /dev/null 0.21s user 0.03s system 98% cpu 0.245 total
infinoid> I couldn't find a better benchmark (yet), but that looks promising

Don't want to start counting my chickens quite yet, but a 4x speedup is quite a nice early result. I have some cleanup to do before I call this branch complete and ready to merge into trunk. I doubt we will get any better then 4x speedups before then, without some more-substantive changes then what I have on my tasklist.

The majority of the test failures right now are packfile test failures, and I suspect it's because we added a new core PMC type and haven't properly updated the list yet. Infinoid said he's going to dig into that problem tonight, so maybe when I wake up tomorrow we will be passing all tests. Wouldn't that be a nice treat for a Sunday morning?

Update: Not more then 10 minutes after publishing this blogpost, Infinoid had the issue resolved and now all tests are passing. It really is an honor to be working on a project like Parrot with so many wonderful developers!

This entry was originally posted on Blogger and was automatically converted. There may be some broken links and other errors due to the conversion. Please let me know about any serious problems.