From: Eric Wong Date: 2017-06-22T00:06:26+00:00 Subject: [ruby-core:81736] A question for GC folks [was: Re: [ruby-cvs:66014] normal:r58840 (trunk): lib/net/protocol: clear short-lived read buffer] normal@ruby-lang.org wrote: > https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=58840 > > Log: > lib/net/protocol: clear short-lived read buffer > > Using a parallel Net::HTTP downloader, this reduced memory usage > from around 120MB to 50MB on my 32-bit x86 system. > > * lib/net/protocol.rb (rbuf_fill): clear temporary buffer For folks knowledgeable in GC: This should be a problem which GC escape analysis (EA) would solve, right? And if so, what type of overhead is there for implementing EA? I know EA is touted for some JVMs; but every system I encounter running Java apps seems to use truckloads of memory regardless (not that modern Ruby apps seems much better :<) Anyways I've sprinkled String#clear calls throughout yahns(*) last year and it seems to be effective at keeping memory usage stable for HTTPS reverse proxying the traffic going to https://public-inbox.org/git/ The above lib/net/protocol.rb change is just me expanding that to cover more ground outside of my own projects. Also, the C source code of Ruby uses rb_str_resize(str, 0) for the same effect, too. (*) git clone git://yhbt.net/yahns Unsubscribe: