Spent all day benchmarking MOS. Ouch. It's rather painful to realize the software you've spent the last year working on is only capable of a throughput of 11 messages/second. The problem seems to consist primarily of the fact that XML is very heavyweight: parsing a small message takes about 25 milliseconds, so the current system has a maximum theoretical throughput of only 1000/25 = 40 messages/second! That's really, really bad.
So I guess a couple possibilities present themselves. The first would be to write my own specialized, optimized XML parser. The other would be to create a new, binary-ish encoding that expresses the same information in a tighter and more easily parsed format. It's a tough call, actually, and ironically I expect it would be pretty close to the same amount of work.
Now that I think about it, a binary encoding would also have the advantage of being able to transmit data like numbers much more easily (as such things are presently kept in text encodings and have to be converted back and forth, ouch, I know.) Hmmm Hmmm. This is going to take some thought.
Note to self: to find the whistle in the second quest, walk THROUGH the wall into the center part of the "A" in the second level. Not the first time I've missed that.
Gods. Java AWT graphics performance sucks. Incredible.