Awesome work!   For comparison's sake have you timed ruby doing
the same installs?

  I also looked at rdoc a little bit and noticed ruby-based parsing.
I am hoping if we profile it we can still find some super slow thing
in JRuby which speeds this up...

-Tom

On Thu, 15 Jun 2006, Ola Bini defenestrated me:
> 
> I shall not keep you waiting. Here is success number one:
> 
> orpheus:/cygdrive/d/Project/jruby> time bin/jruby.bat bin/gem install 
> --no-rdoc rake
> 
> Attempting local installation of 'rake'
> Successfully installed rake, version 0.7.1
> 0.000u 0.000s 0:10.89 0.0%    0+0k 0+0io 742pf+0w
> orpheus:/cygdrive/d/Project/jruby>
> 
> Success number two (mostly success, anyway)
> 
> orpheus:/cygdrive/d/Project/jruby> time bin/jruby.bat bin/gem install 
> --no-rdoc rake
> Attempting local installation of 'rake'
> Local gem file not found: rake*.gem
> Attempting remote installation of 'rake'
> Updating Gem source index for: http://gems.rubyforge.org
> java.lang.RuntimeException: java.lang.InterruptedException
>       at org.jruby.RubyThread.criticalizeOrDieIfKilled(RubyThread.java:300)
>       at org.jruby.RubyThread.pollThreadEvents(RubyThread.java:282)
>       at 
> org.jruby.runtime.ThreadContext.pollThreadEvents(ThreadContext.java:471)
>       at 
> org.jruby.evaluator.EvaluationState.executeNext(EvaluationState.java:257)
>       at org.jruby.evaluator.EvaluationState.begin(EvaluationState.java:297)
>       at 
> org.jruby.internal.runtime.methods.EvaluateCallable.internalCall(EvaluateCallable.java:67)
>       at 
> org.jruby.internal.runtime.methods.AbstractCallable.call(AbstractCallable.java:64)
>       at org.jruby.runtime.ThreadContext.yield(ThreadContext.java:347)
>       at org.jruby.runtime.Block.call(Block.java:114)
>       at org.jruby.RubyProc.call(RubyProc.java:118)
>       at org.jruby.RubyProc.call(RubyProc.java:104)
>       at 
> org.jruby.internal.runtime.RubyNativeThread.run(RubyNativeThread.java:75)
> Caused by: java.lang.InterruptedException
>       at java.lang.Object.wait(Native Method)
>       at java.lang.Object.wait(Object.java:429)
>       at org.jruby.RubyThread.waitIfCriticalized(RubyThread.java:264)
>       at org.jruby.RubyThread.criticalizeOrDieIfKilled(RubyThread.java:297)
>       ... 11 more
> Successfully installed rake-0.7.1
> 0.000u 0.000s 1:13.90 0.0%    0+0k 0+0io 744pf+0w
> orpheus:/cygdrive/d/Project/jruby>
> 
> Success number three:
> 
> orpheus:/cygdrive/d/Project/jruby> time bin/jruby.bat bin/gem install 
> --no-rdoc rails --include-dependencies
> 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
> 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
> 0.000u 0.010s 4:55.06 0.0%    0+0k 0+0io 740pf+0w
> orpheus:/cygdrive/d/Project/jruby>
> 
> 
> Now, my Cygwin is REALLY slow (and it's running on a cmd-prompt inside my 
> Emacs...), the local installation of Rake is really snazzy when doing it in 
> a regular command prompt. The remote one spends 13sec loading yaml and 
> about 22sec downloading the rake gem, and between 10 and 20 secs starting up.
> Also, remember that we still have that thread stupidity in downloading that 
> Charles have talked about.
> 
> I haven't found what's causing RDoc to be so intolerably slow, but I guess 
> that there is one spot where we can fix that too. I hope so. =)
> 
> 
> 
> I guess you wonder how I've achieved this. There were two big bottlenecks 
> for this this. The first was in Zlib::GzipReader and the second in 
> IOInputStream (which is a InputStream-wrapper for Ruby IO-like objects). 
> Both of these were really slow. There was a reason for this; they were VERY 
> hard to get right. Using RubyStrings as repositories for bytes is a tricky 
> business.
> So, I've improved IOInputStream (and I have a few ideas for improving it 
> further), and rewritten GzipReader in Java, and with a good implementation 
> at that. I will do the same with GzipWriter, clean up the code a little bit 
> and then post it here. Probably in max one day.
> 
> Regards
>   Ola Bini
> 
> 
> 
> 
> _______________________________________________
> Jruby-devel mailing list
> Jruby-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jruby-devel

-- 
+ http://www.tc.umn.edu/~enebo +---- mailto:[EMAIL PROTECTED] ----+
| Thomas E Enebo, Protagonist  | "Luck favors the prepared    |
|                              |  mind." -Louis Pasteur       |


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

Reply via email to