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.


  1. Gravatar IconJan

    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?

  2. Gravatar Iconjkuhnert

    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.

  3. Gravatar IconKalle Korhonen

    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.

Leave a Comment