First, I am a Ruby newbie but am an experienced developer of highly scalable applications. I like the Ruby community because it is very friendly and helpful; however, I wanted to give my background because the answer to this question (despite being a newbie to Ruby) won't be your typical 80/20 optimize when you need to, watch your database first, or bandwidth is the limiting factor type question. Our application servers on our current application run in highly optimized Coldfusion (sub 100ms page response times) has about a dozen application servers attached to it with probably about a dozen more supporting servers. We have dual load balancers, dual Firewalls, RAIDed dbs on multiple servers, and a 100 Mbps connection (likely to be upgraded). We anticipate this new app to run on up to 100 application servers eventually but this is obviously dependant on app server and code performance. I know to optimize when it's important but I am concerned about the overhead of a framework I want to place on top of Ruby. The RAILS framework, unfortunately, is too limiting for the application we are planning (at least the VC parts of MVC) and prefer the control and performance understanding of having built most of the framework ourselves anyways. Thank you in advance for listening. If I can get the right answers to these questions, we would like to launch possibly one of the more highly scaled our Ruby web applications. I find Ruby a highly desirable language to use but I find very little documentation or discussion on how things work underneath. QUESTION 1 Is there a way (or does it do this already) for the Classes of the application to be cached such that it doesn't add performance overhead? Because it is such a dynamic language, my understanding is that the classes themselves are created at run-time and DO add overhead before any object instantiation occurs. My guess is that this would still happen under YARV too? In other words, can I create a scope in the web application (say a scope that lasts the lifetime of the web server) where I can store class definitions and/or object instances themselves and then use them to create instances in the page request scope? Why I want to do this is so I can define many classes without having to worry about the overhead of having them defined at runtime for every page request. In this way, if I don't use the classes in a page request, they won't add any extra to the execution time. When I write Javascript, I know that there is overhead so I have to keep my libraries short and sweet. In ColdFusion, I have created a framework that stores shared classes and object instances in what ColdFusion calls an "application" scope so that classes and objects are setup only once at application startup (my framework is a little more complex than this but you probably get the point). Because of this, I have many libraries and they are wide and deep. This is very helpful because I can create many helper libraries without worrying about performance overhead. I want to know if this is possible in Ruby. Overall, I'm not really sure what kind of persistence and non-persistence there is between page requests when Ruby is attached a web server. Any thoughts or pointers to resources would be helpful. QUESTION 2 I've found a lot of documentation on ERB but a lot less on eRuby. All the documentation I have found on eRuby has it executing from the command line or through a web server plugin, usually through Apache. Can eRuby be called from inside Ruby to do parsing? I ask this because eRuby seems like it would execute faster seeing it is built using C. Using ERB is straightforward but I'd love to get the performance benefits of using eRuby if I could; however, my framework would likely requiring making calls from inside Ruby and not ONLY .rhtml files directly. I'm guessing we can use ERB to generate the Ruby code and saving the generated code to a file and then executing the generated file. This would improve performance since the parsing step only happens once; however, I'd still like to know if eRuby can be used this way. FINAL COMMENTS Sorry for the monster large post. This is incredibly important for us and will help us decide if we want to switch to Ruby for our new application. We have a large amount of good code in ColdFusion but as an agile company, I can see the benefits of Ruby down the line, especially after a couple of years. Mostly, I love the clean syntax and the overall design of the language. Thanks for your input and I hope (beg) that somebody can help answer these questions. -- Posted via http://www.ruby-forum.com/.