ruby-changes:50776
From: normal <ko1@a...>
Date: Wed, 28 Mar 2018 17:30:38 +0900 (JST)
Subject: [ruby-changes:50776] normal:r62961 (trunk): webrick/httpservlet/cgihandler: reduce memory use
normal 2018-03-28 17:06:28 +0900 (Wed, 28 Mar 2018) New Revision: 62961 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=62961 Log: webrick/httpservlet/cgihandler: reduce memory use WEBrick::HTTPRequest#body can be passed a block to process the body in chunks. Use this feature to avoid building a giant string in memory. * lib/webrick/httpservlet/cgihandler.rb (do_GET): avoid reading entire request body into memory (do_POST is aliased to do_GET, so it handles bodies) Modified files: trunk/lib/webrick/httpservlet/cgihandler.rb Index: lib/webrick/httpservlet/cgihandler.rb =================================================================== --- lib/webrick/httpservlet/cgihandler.rb (revision 62960) +++ lib/webrick/httpservlet/cgihandler.rb (revision 62961) @@ -65,9 +65,7 @@ module WEBrick https://github.com/ruby/ruby/blob/trunk/lib/webrick/httpservlet/cgihandler.rb#L65 cgi_in.write("%8d" % dump.bytesize) cgi_in.write(dump) - if req.body and req.body.bytesize > 0 - cgi_in.write(req.body) - end + req.body { |chunk| cgi_in.write(chunk) } ensure cgi_in.close status = $?.exitstatus -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/