From: Roger Pack Date: 2008-12-04T02:52:15+09:00 Subject: [ruby-core:20263] Re: Promising C coding techniques to reduce MRI's memory use > I just bang on Ruby 1.6.8 for our robotics application. I was wondering why the older version :) > You seem to already be doing a lot of excellent Ruby testing with current > versions. > If I spent a couple days developing these two patches for Ruby 1.8.7, > would you be willing to run > regression tests against them and to report the results here? Absolutely. I'll test them against some trivial stuff and a small rails app and see if they help memory wise and check for speed :) > P.P.S. The way GC is currently invoked causes it to occur when that stack > is already near its maximum depth. This patch tries to make GC normally > occur is part of CHECK_INTS, when the stack tends to be shallower. > At that point, clearing the stack can be much more effective. I wonder if there are less intrusive ways, like changing [from a previous post] VALUE l = rb_eval(self,node->nd_recv); VALUE r = rb_eval(self,node->nd_value); result = rb_reg_match(l, r); } break; /* nodes for speed-up(literal match) */ case NODE_MATCH3: { VALUE r = rb_eval(self,node->nd_recv); VALUE l = rb_eval(self,node->nd_value); .... to ... VALUE l = NULL; VALUE r = NULL; l = rb_eval(self,node->nd_recv); r = rb_eval(self,node->nd_value); result = rb_reg_match(l, r); } break; /* nodes for speed-up(literal match) */ case NODE_MATCH3: { r = rb_eval(self,node->nd_recv); l = rb_eval(self,node->nd_value); [reuse same variable]. Also re: size --doesn't 1.9 have rubygems pre-installed so that it isn't as large of a standard library? [just pointing out that maybe it could use some minimizing love still?] :) Thanks! -=R