At Fri, 7 Sep 2007 11:43:24 -0700, Ezra Zygmuntowicz <[EMAIL PROTECTED]> wrote: > Hey Roger- > > No it would not be as fast at all. Current ruby threads are green > threads, meaning that they do not use native OS threads so there is > no real parallel execution. Ruby has an internal timer and just > switches between threads really fast. So 10 mongrels will trounce one > thread safe mongrel. > > Ruby 1.9, Jruby and Rubinius will eventually have native > threads and may make this situation better but for now such is life.
I don’t want to muddy the waters here, as my knowledge of Ruby threading performance is minimal, but there isn’t any ‘real’ parallel execution on any uniprocessor machine: it’s all emulation. Erlang uses green threads (but calls them processes) but context switches quite a bit faster (if I understand correctly) than native threads or processes. True, on a multiprocessor machine Ruby isn’t going to take advantage of the situation without native threads or running multiple processes. But it may turn out that a mixture of multiple processes AND green threads provides greater performance than plain old multiple processes. This paper, for instance, from 2002, claims significantly better performance on the JVM (Linux) with green threads than native. <http://cselab.snu.ac.kr/member/naehyuck/papers/%5BJ14%5DComparative%20performance%20evaluation%20of%20Java%20threads%20for%20embedded%20applications.pdf> best, Erik Hetzner ;; Erik Hetzner, California Digital Library ;; gnupg key id: 1024D/01DB07E3
pgpCtyMslGZa5.pgp
Description: PGP signature
_______________________________________________ Mongrel-users mailing list Mongrel-users@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-users