On Aug 18, 5:32 pm, Charles Oliver Nutter <[email protected]> wrote: > On Aug 18, 3:58 pm, pharrington <[email protected]> wrote: > > > On Aug 18, 3:59 pm, Charles Oliver Nutter <[email protected]> wrote: > > > > Multithreading in JRuby doesn't mean you need to write multi-threaded > > > Rails apps; it means you get to take advantage of Rails thread-safe > > > mode (2.2+) to shove as many requests as you possibly can through a > > > single instance. No other Ruby implementation can do that. > > > What prevents this from working properly in Ruby 1.9? > > Ruby 1.9 has a "giant lock" that prevents threads from running in > parallel. So even though they're native, you'd still need 16 processes > to utilize 16 cores fully. The only implementations to support actual > parallel-executing threads are JRuby, IronRuby, and MacRuby. Of these, > only IronRuby and JRuby run Rails. Of these, only JRuby is production- > ready and fast. > > Ruby 1.9 *may* also suffer from issues common to other GIL-based > systems like Python (giant interpreter lock), since you start to have > the OS scheduler and the GIL scheduler fighting each other. Here's a > good presentation on the issues in Python: > > http://blip.tv/file/2232410/ > > - Charlie
Makes sense, not sure why I didn't remember that (especially when I directly ran into this with a somewhat toyish app that does alot of CPU intensive work in threaded batches). Thanks. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

