From: Roger Pack Date: 2009-01-24T00:47:25+09:00 Subject: Re: Choosing the most appropiate Ruby version and programmin > I've already read about various Ruby frameworks to achieve it: > > - EventMachine: It's a Reactor Pattern implementation. It's based on > events. > It could be a solution but it seems that the resulting code would be > really a > pain to debug and not very "visible". I've got a recomendation from an > experimented Ruby coder for non using EventMachine in my project due to > my > project complexity. It's actively mantained. From my own experience writing a bittorrent-like protocol, it ends up being easier to write it in EventMachine than a threaded model [and faster, and also since it's not multi-threaded, the garbage collector is more efficient]. I suppose Ruby 1.9 + revactor would also be somewhat efficient. Rev is maintained [though pretty small community] by its author I know of no outstanding bugs. > - Ruby 1.8 and 1.9: It seems that the garbage collector is not good > enough so > I'd would experiment memory issues. There's a patch on ruby core currently that will make 1.8.7 GC better--and it actually works, but for now yeah the 1.8.x GC is not efficient. > - JRuby: Good garbage collector and mature, but not sure if it allows an > Actor > Model using "something". There is EM for Jruby, as well. I'd assume it works I've never used it. I'd probably just worry about garbage collection and memory problems when they occur. For my own experience running a multi-threaded socket app in 1.8 used like 120MB RSS, which to some is too much, and to some is something along the lines of "who cares?" EM style used like 30MB. Again with the MBARI patches recently introduced it would probably go down to something like 50MB RSS. Pre-mature optimization is... :) Good luck. -=r -- Posted via http://www.ruby-forum.com/.