Just wanted to give a heads up...
Ali and I had a talk with Robert Penner last Friday to discuss his involvement in ongoing AsUnit development.
As it turned out, he had quite a few really GREAT ideas about how AsUnit could be improved.
One of them was that we could batch our Local Connection transmissions so that the UI would be more responsive.
I was promptly up until the wee hours last night trying to get it to work. Knowing what I know about the implementation, I figured that it would be a pretty easy addition...
As it turned out, I was able to get some small tests working, but as soon as I ran some of our bigger applications, none of the Tests were being received by the server. There was no call to onStatus, no obvious reason for the failure, no notification whatsoever. Eventually, (around 1:30am or so) I figured that I probably shouldn't be coding and drinking and figured I must be doing something stupid!
This morning, I caught a surprising conversation on the osflash list - they were talking about how the Local Connection object has a 40k data limit! What?!
So I checked the implementation and if I put a 100 assertion limit on the batches, everything worked fine - even on the big builds.
So -
I dropped a build on AsUnit that has a 100 assertion batch size, but this is kind of arbitrary - especially considering that folks could put just about any size of string message into each assertion and even more so because I usually don't put anything in the message field.
I now want to put together a build of LocalConnClient and LocalConnServer that has some kind of handshake mechanism, so that any tranmission also includes confirmation of receipt. If the server doesn't confirm, the client will throw some kind of error. We can then handle this error in AsUnit by cutting the batch size down a bit, and retrying the request.
I figured folks ought to know about this - since it seems to be pretty important if you're building an app that relies on Local Connection...
0 Comments:
Post a Comment
<< Home