For shits and giggles I ran a few informal tests using the old TimeTracker demo app from the version 4.1.1 release (couldn’t compare using the latest as it uses some of the new features that 4.1.1 just doesn’t have, such as the rounded corners and drop shadow rendering services).
The results were fairly impressive, not that I was surprised as I’ve become best friends with YourKit over the course of this development series and have tried to squeeze every last ounce of performance that I can out of it. (there are of course a few more things that can be done but they will have to wait until the next 4.1.3 release)
Old Timetracker Home: 1.37 avg total client render 3ms avg response render Old Timetracker Locale list: 320ms total client render 4ms avg response render ================================= new lib home: 650 ms avg client render 2ms avg response render new lib locale list: 156ms avg client render 3ms avg response render ================================= home: 47% overall client render speedup 66% server response speedup average locale list: 205% overall client render speedup 133% server response speedup average
The first and second rows represent the before/after results while the third is the calculated overall percentage increase for everything. Overall client render was measured using the indispensible FireBug firefox plugin. The differences are small in these tiny examples but as they are the only public applications I know people can download and verify themselves they will have to do. (I have seen similar results in real applications as well)
There are a number of things directly related to the improvements, but the overall large impact items are probably:
- New bytecode enhancing ognl 2.7 version. (also to be released with Tapestry 4.1.2)
- Use of new layered build system that came out with Dojo 0.4.3.
- Continued improvements / tweaks in the asset caching services.
- Many many large and small tweaks to the Tapestry internals as a direct result of YourKit profiling.
I think despite our best efforts we’re still realistically 1-2 weeks away from a release but this version in particular should have a ~huge~ impact on anyone with an existing Tapestry 4 application. I have no idea how it compares to other frameworks as I’m too lazy to go through that much effort – but I’m sure any previous comparisons are now going to be blown out of the water.
Latest Entries
- script to vacuum os x sqlite databases
- updated foxylicious extension for Firefox 3
- how to fix butt ugly ubuntu hardy heron fonts
- Where are our java leader’s opinions on closures?
- Tapestry 4.1.5 Released && various Tacos project releases (like Seam / jQuery support)
- painting by numbers, or how html cowards hide behind CSS
- Rails component envy
- OGNL 2.7.2 Released
- news flash – Swing is a terrible API to emulate in web development
- hip hop is neat
May 30th, 2007 at 11:20 pm
Looks good!
Can you tell us, whether T4.1.3 will be the ‘last’ of T4′s releases, or will T4 continue to evolve in parallel of T5?
May 31st, 2007 at 6:54 am
No – I don’t think 4.1.3 will be the last release. There will probably be as many as it takes to resolve the majority of JIRA issues associated with it.
Aug 8th, 2007 at 2:16 pm
Can’t thank you enough Jesse! Your work really has been superb. Trails (http://trailsframework.org) is using OGNL heavily and thanks to you, we are enjoying a noticeable performance improvent in the latest development version. Also a million thanks for coming up with the OGNL fixes so quickly. And we’ve barely scratched the surface of all the AJAX stuff possible in Tap 4.1.2.