> A brief comparison by Mike Watkins on his blog: > http://mikewatkins.net/categories/technical/railsvquixoteperformance.html I'm not sure I should have ever started down that road as it was more of a distraction than anything, and I did not learn anything in the process that altered my own course. Just be sure to read the follow ups as I discovered one of the principal issues behind the initial performance difference; but then later I re-discover that there _appears_ to remain a big difference in performance between the frameworks. http://mikewatkins.net/categories/technical/respondingtoryan.html In short: the Ruby app was rendering Textile formatted content as html at request time. This kills my app too. http://mikewatkins.net/categories/technical/takingtextileout.html Then I took textile out of the picture, re-ran a series of tests with textile enabled or disabled in both the Ruby and Quixote apps, and also compared Markdown rendering for fun. Scenario Requests per second ------------------------------------------- Textile Engine Disabled Enabled ------------------ Instiki, no content 21.05 17.75 Quixote, no content 250.63 149.37 Instiki, content 9.66 9.57 Quixote, content 248.14 18.67 Markdown Engine ------------------ Quixote, no content 215.98 Quixote, content 106.60 The net result _appears_ to be (and I say this guardedly because reading Ruby code hurts my eyes and head - truthfully - and no flame intended there) that if one creates a relatively similar comparison, Quixote can push significantly more requests per second through a given server than Ruby and the ancestor to Rails. I don't have a lot of faith in the comparison myself; its impossible for me to make an adequate comparison between the frameworks; the Ruby app used as a comparison (Instiki) uses a precursor to Rails so its not current anyway; and I know little about Ruby and have no desire to change that. If the comparisions by design or accident _do_ reflect anything close to reality, maybe we should code up C-based versions of Textile, Markdown, reStructuredText, etc ;-) Myself I think using a simple cache is the way to go. > Too bad there is no way to add comments for me to add a QLime plug ;) One of these days I'll move on that...