Now this is strange. It works flowlessly (and REALLY fast) for me.
I'm wondering what's different in my source tree...
Now, what's different in my source code tree from HEAD, right now? If I 
remove all my testing files and stuff like that, that CANNOT influence, I 
get this:

? lib/plaincharset.jar
? src/builtin/zlib.rb
? src/org/jruby/RubySignal.java
? src/org/jruby/RubyStringIO.java
? src/org/jruby/RubyZlib.java
? src/org/jruby/libraries/StringIOLibrary.java
? src/org/jruby/libraries/ZlibLibrary.java
? src/org/jruby/util/DummySignalHandler.java
? src/org/jruby/util/ISignal.java
? src/org/jruby/util/SunSignalHandler.java
M bin/jruby.bat
M src/builtin/etc.rb
M src/builtin/java/collections.rb
M src/org/jruby/IRuby.java
M src/org/jruby/Ruby.java
M src/org/jruby/RubyKernel.java
M src/org/jruby/util/IOInputStream.java
M src/org/jruby/util/IOOutputStream.java
M test/testStringIO.rb
M test/testZlib.rb

where most of the changed files are for StringIO and Signal.

/O

At 09:54 2006-06-16, you wrote:
>Ah, ouch. I'll take a look at it later. I saw it when I created the
>original Zlib too. It's probably something small, though.
>
>/O
>
>At 09:36 2006-06-16, you wrote:
> >Also FYI, with or without my NIO fix, I'm getting the following error
> >while installing RubyGems:
> >
> >   Successfully built RubyGem
> >   Name: sources
> >   Version: 0.0.1
> >   File: sources-0.0.1.gem
> >hook /home/headius/rubygems- 0.8.11/./post-install.rb failed:
> >java.io.EOFException: Unexpected end of ZLIB input stream
> >
> >Perhaps something small?
> >
> >On 6/16/06, Charles O Nutter
> ><<mailto:[EMAIL PROTECTED]>[EMAIL PROTECTED]> wrote:
> >FYI, I went ahead and committed the plaincharset.jar file, since the patch
> >seems to have mangled it.
> >
> >
> >On 6/16/06, Charles O Nutter <
> ><mailto:[EMAIL PROTECTED]>[EMAIL PROTECTED]> wrote:
> >So we all know our friend Ola has contributed some great pieces of work
> >over the past several months. As another JRubyist put it, "Ola is a f'n
> >machine". StringIO, YAML, and Zlib are now mostly Java and far, far faster
> >than they were. These contributions have made RubyGems far, far faster.
> > From the original install time on this Opteron 2.6G of almost an hour
> >(sans rdoc, mind you), we get this:
> >
> >real    5m35.341s
> >user    0m36.379s
> >sys     0m5.195s
> >
> >Impressive, by any measure. Ok, so I don't remember whether it was exactly
> >an hour to install before, but it was bloody long enough to hit the
> >drive-in for lunch. Grotesquely slow. Ola's changes alone dropped that
> >time down to comparatively nothing. I went through the pains this evening
> >of applying all his patches, cleaning up conflicts between them (since I
> >didn't have a complete picture), and tidying up a few minor things. Then I
> >ran a full Rails install. The time was impressive, no doubt about it.
> >However, something really, really bothered me. In the time between gem
> >download and gem install, the machine was sitting there, doing *nothing*.
> >No network traffic, 0% CPU utilization. Zippo.
> >
> >Then it hit me.
> >
> >You've all heard the story about the timeout library. net/http calls
> >net/protocol which reads in 1024-byte chunks from the stream with a
> >timeout thread for each one. I cried about this on my blog too, since it
> >seemed to be the source of a terrible performance problem. It turns out
> >that once again, Java has already optimized our troubles away, in this
> >case the cost of spinning up hundreds of threads.
> >
> >Our NIO-based IO handler had a tiny flaw when it came to Socket IO: it was
> >blocking. That meant that for the last read from the stream, the last few
> >bytes of a gem file, it would sit and wait to fill up net/protocol's
> >1024-byte buffer. I am no NIO expert, but channels appear to behave
> >somewhat differently when doing File versus Socket IO. At the end of a
> >File, the stream is empty and read(ByteBuffer) will immediately return -1.
> >With a Socket, however, if there are not enough bytes to fill the buffer
> >and the socket is still open, it will block. Such is the case here. The
> >HTTP get of a gem seems to leave the channel open. I'm not sure if this is
> >intentional in RubyGems (for retrieving multiple gems) or a bug
> >(potentially in JRuby) but leaving the Socket in blocking mode resulted in
> >that last chunk of bytes waiting until timeout kicked in.
> >
> >My fix (in the form of a patch to IOHandlerNIO) may or may not be correct;
> >like I said, I'm no NIO expert. However, it seems to work well enough:
> >
> >Attempting local installation of 'rails'
> >Local gem file not found: rails*.gem
> >Attempting remote installation of 'rails'
> >Updating Gem source index for:
> ><http://gems.rubyforge.org>http://gems.rubyforge.org
> >Successfully installed rails-1.1.2
> >Successfully installed rake-0.7.1
> >Successfully installed activesupport-1.3.1
> >Successfully installed activerecord-1.14.2
> >Successfully installed actionpack-1.12.1
> >Successfully installed actionmailer-1.2.1
> >Successfully installed actionwebservice-1.1.2
> >
> >real    1m3.751s
> >user    0m53.817s
> >sys     0m5.722s
> >
> >For sake of comparison, Ruby installs Rails and its dependencies in about
> >25 seconds on my system. It's probably safe to say that we're only 2x
> >slower for non-rdoc gem installations, which seems pretty good to me.
> >
> >The NIO patch alone is attached, as is a complete patch with everything
> >changed on my system, including:
> >
> >- All Ola's stuff (stringio, zlib, and signal)
> >- My unrelated simplifications to Thread.critical= (not as deterministic
> >as before but less likely or unlikely to deadlock...needs a bit more 
> testing)
> >- My NIO fix
> >
> >It will be nice to say that not only have we gotten RubyGems working, but
> >it's been sped up by perhaps an order of magnitude since we first started.
> >
> >--
> >Charles Oliver Nutter @ <http://headius.blogspot.com>headius.blogspot.com
> >JRuby Developer @ <http://jruby.sourceforge.net>jruby.sourceforge.net
> >Application Architect @ <http://www.ventera.com>www.ventera.com
> >
> >
> >
> >
> >--
> >Charles Oliver Nutter @ <http://headius.blogspot.com>headius.blogspot.com
> >JRuby Developer @ <http://jruby.sourceforge.net>jruby.sourceforge.net
> >Application Architect @ <http://www.ventera.com>www.ventera.com
> >
> >
> >
> >
> >--
> >Charles Oliver Nutter @ <http://headius.blogspot.com>headius.blogspot.com
> >JRuby Developer @ <http://jruby.sourceforge.net>jruby.sourceforge.net
> >Application Architect @ <http://www.ventera.com>www.ventera.com
> >_______________________________________________
> >Jruby-devel mailing list
> >Jruby-devel@lists.sourceforge.net
> >https://lists.sourceforge.net/lists/listinfo/jruby-devel
>
>
>
>
>
>_______________________________________________
>Jruby-devel mailing list
>Jruby-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/jruby-devel





_______________________________________________
Jruby-devel mailing list
Jruby-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jruby-devel

Reply via email to