If the call is read() (gets(), etc) rather than sysread() or recv(), then we are reading in up to 4k bytes at a time and buffering it.
Evan Thomas E Enebo wrote: > On Tue, 06 Jun 2006, Thomas E Enebo defenestrated me: > >> On Tue, 06 Jun 2006, Ola Bini defenestrated me: >> >>> I did a simple runhprof on JRuby while doing gem install rake, which >>> first downloads the 3.5mb gemspec and then the 76kb Rake-gem. >>> The result was this: as far as I can understand this, it seems we're >>> blocking really, really, really much. >>> (That throwable is ONE InterruptedException, by the way... So that isn't >>> cheap either) >>> >>> Well, enjoy. I'm going to bed! =) >>> >> Thanks for this, I did notice something was amiss and figured it >> was only blocking initially...It looks like it may be much more than that. >> Something to dig into...perhaps gems install times will rival ruby by the >> end of this week... :) >> > > I have not figured this out yet, but I will say that the number of > read calls may or may not be as Ruby wants. net/http will read in > 1024 bytes at a time from the network. This number seems low to me > it is not even a full MTU. So we honor this and also only read in > 1k at a time. If the gem you were installed was large, then you will > see many many reads happening. We can probably be more aggressive > internally, but I am not sure how much this will help yet. > > So I wrote a simple test which uses net/http the same way as gems > and I put some prints everytime we called sysread in RubyBasicSocket. > Those come out at a decent clip and then stop for quite a while before > finishing. What returns appears to be one stringio object. I am > wondering if we are seeing the same thing that we saw before when > we had RubyString backed by a String and not a StringBuffer. I do > have plans to rewrite StringIO in java, but not in the next couple > of days. If it is some super slow string concat string thing then > we may be able to get some time back by examining how we are implementing > some of the stringio ops. > > I will look more this evening... > > -Tom > > _______________________________________________ Jruby-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jruby-devel
