Nick,
We don't have any Praxis app in production today, but we are close to deploying the first few (in just a few weeks).
However, we do have many apps that are built in some previous incarnations of what Praxis is today (which are less performant and less featureful).
In terms of performance, that's a longer thing to discuss I guess, since it has many different aspects, from the Web aspect, to the mediatype rendering aspects, to the param coercing, to filtering....even to the DB performance (if you use our Praxis mapper, for example)
I'm happy to dive into any of them if need be, and in fact I was planning to write some microbenchmarks in the blog to get some basic numbers for comparisons and discussions...but I haven't had the time yet.
Let me just say this, though: performance has been at the front and center of our goals. So while there is always a tradeoff about ease of programming, features and raw performance, we've been fairly conscious of the performance implications. Now, I know that without putting numbers forth for all this is still too fuzzy and doesn't really respond your question head on...but let me give you a couple high-level datapoints that come to mind:
- I do remember doing some micro-benchmarks a few weeks ago (you know, returning a typical "hello world" string action) and I was getting slightly better results than sinatra (they both were close to 20K r/s with 10 concurrent and persistent connections) compared to raw rack that was a little over 30Kr/s (which would be the ceiling in my Mac). Obviously the point of Praxis is not to be fast at returning a simple string :) ... so the gains would only get better with more complex/real apps that involve true parameter/header/payload parsing, mediatype rendering, validation...etc. The point is that the baseline seemed to be, at the very least, on par with Sinatra for the worst case scenario...which is considered a fast and lightweight framework to begin with.
- We've also looked at rendering and type coercion in the past, and do some quick comparisons with somehow related gems. I do not recall any of the initial numbers but I do recall that we were quite pleased with the performance of the underlying attributor and praxis-blueprints gems (the ones that deal with the "types", "corecion", "validation", "rendering").... especially because we saw that it was either close to the performance of other gems that had many many less features, or had much better performance to gems that were more on par with the features.
Anyway, I hope that gives you a little more color on that area. And hopefully we can actually get some initial baseline numbers and write a blog entry about it so we can start discussing specifics.
Cheers!
Josep M.