seedifferently/the-great-web-framework-shootout — pull request #36 by hlship (2012-02-27 23:58:52+00:00)
Title: Apache Tapestry

Just took a little bit to put together an Apache Tapestry contribution; I forked from "master" not "dev" (I didn't see the note about that until later), but I hope it isn't an issue.

Tapestry is quite popular as being fully featured, with both high performance and high productivity, and a very strong reuse option via components. I've been curious about how well Tapestry performs against other Java frameworks, but also against the Rails and "scripting language" world.

Tapestry does a few things differently that potentially hurt it in these kinds of apples-to-oranges comparisons. For example, Tapestry renders its templates to a server-side DOM, then streams that DOM to the client. There's a lot of advantages to that (beyond what I'd care to go into here), but it does mean that the time to first byte compares poorly against simpler systems. Likewise, Tapestry's default behavior is to encode HTML characters to HTML entities (i.e., \> to \<) for dynamic text; this also causes some overhead.

On my laptop, I'm seeing about 5ms to handle the database driven request. I suspect that your test will not be able to saturate the server (given how I've configured the connection pool), though I'm not sure how many threads the Jetty servlet container is configured to use for processing requests.

Anyway, I hope you'll incorporate the Tapestry tests and publish an update with comparisons!