HOWEVER, I would suggest that your fundamental assumptions are wrong here. Without a cache, PHP has to re-interpret the source files for every single request. That's not how Rails works: the code is parsed once at server startup (or the first time it's used, depending on which part of the code you're looking at) and reused in the same process for subsequent requests, so there isn't a per-request parsing cost.
As ever, benchmark and profile before making optimisation assumptions.
However, in the event that you do need caching, it can be achieved through a variety of means, including ORM level object caching, controller caching and/or view/fragment caching.
Lastly, have you read this guide on Rails caching? Much of this is readily available in the standard distribution of rails: http://guides.rubyonrails.org/caching_with_rails.html
(final thought — this is a question might have been better suited for StackOverflow, just given the manner in which SO and HN are geared.)
@clyfe and @regularfry: Thank you! The fact that my assumptions where wrong, and that a Rails applications is not re-interpreted every time an http request is made, is exactly what I wanted to know!
@knowtheory: I tried reading the caching guide but it's too darn long for just skimming it. The answers I got here were exactly what I was looking for - brief and to the point, however trying to ask on SO first may be a good idea next time.
That is the case of bytecode caching. In regards to other forms of caching (etag, memoization etc) frameworks implement different strategies.
http://blog.headius.com/2010/05/kicking-jruby-performance-up...