December 6th, 2010
This one is largely a response to the impressive performance of the JSON decoder in blooddy_crypto. It was clearly better performing than my own, but I’ve made a large round of optimizations to keep up with the library. I was able to improve the performance over as3corelib a few more notches, reaching 8x faster on large objects. Admittedly, blooddy_crypto’s decoder performs better in some of my own tests (good work BlooDHounD!). My encoder is still much faster though.
Unlike blooddy_crypto, the source is provided, it’s written in Flash 9-compatible AS3, and it is pretty much bug free (blooddy_crypto doesn’t pass the barrage of tests in TestJson.as).
There’s also a new encoder, JsonEncoderAsync. It’s probably one of the more surreal pieces of code I’ve written, but it can work asynchronously and it’s pretty fast.
EDIT: Couple interesting notes. I tried using apparat again to gain access to the alchemy memory bytecodes. They still didn’t perform well. It’s surprising, but it seems like array access on a ByteArray in a local variable is still faster than those bytecodes (EDIT 2: turns out they are not, but the performance boost is pretty modest). Other ByteArray operations, like readInt, performed even worse than my already low expectations, so I removed them entirely.
Also, stack underflow errors (which came up once during testing) seem to be related to errors in catch statements outside of debug mode.
December 4th, 2010
So, this blog was located on a shared host, and one guy on the host had the wrong version of some software, so one thing leads to another. and a script kiddie to replaces the index.php of this blog. I’ve moved to another host (a vpn), and it looks like I’ve got everything working now. Sorry for any confusion, it turns out configuring wordpress on a temporary domain configures it permanently for that domain, leading to some interesting problems. I think it might be time for a change, maybe I should drop wordpress as well.
EDIT: Looks like my email has been down for a while, the MX record was invalid. It should be working but it will take a bit longer to propagate.