teotigraphix.blog.show()

Flex2 :: Performance

Hello,

Man, back from a rainy weekend and rejuvenated now that I am well again!

This post is more on an informational level, sharing some performance things about the Flash Player and Flex that I have studied.

(attention :: pimping teoti graphix :: inside joke, eh?)

If you have been following this blog, you will know that I have made an AS3/MXML documenter entirely in Flex. For now, the ONLY thing I use PHP for is file system access.

Being that Apollo is going to be kewl, I have no idea how it is going to help this application get out there. ;-) , I think this would make a nice ‘proto’ application for Adobe to ‘pimp’ if Apollo allows me file system access. I would be blown away if this was not achievable the way they are talking about Apollo.

Well, I just have to say that last night, I successfully loaded, analyzed and rendered Adobe’s over 500 class/interface framework in less than 1 1/2 minutes. The documenter zips my component framework out in 12 seconds. (I am saying I created APIDocs using the exact same frame/template design Adobe is using, copyright infringement Adobe  )

The way I test my Flex programs differ from the flock I am sure but, I have one pattern in this project that just reams the Flash Player at full light speed. What do I mean?

Ordinarily, you create a proto project, you have a bunch of algorithms tied to each other and it performs a task in a somewhat linear fashion. Once you start to refractor and shift your framework, you then are able to create ‘break points’ at which you start to see the ‘view’ emerge.

Once the view is emerging it is a lot easier for ‘me’ to refractor because I then see the proper algorithm separation. Coming back to the point, I left in the one linear code path in the application for a reason. It is the only code path that truly shows the performance of the player, regular expressions and over all INSANE data loading capabilities of the Flash Player run on a local server.

The path is load all recursive classpath directories, load ALL file data ;-) , analyze ALL file data, render back to server ALL classes-interface html. Also all new directories structures etc. Out oven the oven pops an APIDoc that has ‘somewhat’ the same info as the ones in FlexBuilder2.

There is enough info in the framework source to make he mx apidocs worth parsing ;-) .

I haven’t even optimized my code what so ever and Flash Player 9 has my utmost respect. This AVM2 that Adobe wrote is a masterpiece. These guys and gals created something so optimized from what it was it’s indescribable.

I will also note, if you are having questions about ‘how fast’ Flash Player 9’s regular expressions are, well they are as fast as you need them in the Flash Player.

I don’t know if it is a design pattern when using an event driven framework but, using event queues for all processing in an application like this makes it almost majikal. In every step of the application you can see in the status exactly what is being done. There is no locking loops, event queues feel almost like multi-threading because you can squeak things through the ‘holes’ in the events.

Anyway, maybe you will see this being released as an ‘Apollo’ app coming up! I wish I could find more information on this to see where I could tie it into this app.

BTW, I decided to create this documenter entirely in Flex because … well I love to break things, I couldn’t break Flex with this monster. I have faith other developers are going to realize that they can do BIG things with the new Flash Player 9 and Flex2!

Peace, Mike

Leave a Reply