> 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...