Same for me, I posted about this some time ago:
http://www.nabble.com/forum/ViewPost.jtp?post=17302698&framed=y

I did some simple profiling (actually added some logs to Rails startup
procedure) with the result that alone requiring active_support takes almost
50% of the time (especially loading all the core extensions).

Another thing worth mentioning: On my system (Ubuntu/JDK6)  server hotspot
is default. The startup-time drops by 30% if I set -J-client.

I don't want to sound negative, I very much appreciate JRuby since it offers
so many advantages, but the "drastically reduced startup time" of JRuby
1.1.2 doesn't apply to Rails yet. Just a thing to notice If I were you and
attending RailsConf ;-)

Rails startup time (my current project):
JRuby 1.1.2: 10.8sec
JRuby 1.1.2 -J-client: 8.7sec

JRuby 1.1.1: 12.2sec
JRuby 1.1.1 -J-client: 9.5sec

MRI 1.7sec


Charles Oliver Nutter-2 wrote:
> 
> Someone popped on to IRC and mentioned it takes 25 seconds for 1.1.2 to 
> start up their Rails console. I tried it myself and got a better result, 
> 10s, but still far slower than Ruby's 2s. Given that a simple "puts 1" 
> script now starts up within .5s of Ruby for me, what gives with overall 
> startup performance?
> 
> Part of the answer is sure to be JVM warmup time. But I think there's 
> probably a lot more we can do to improve cold performance. Since it's 
> not hard for brain, now's probably a good time to take a step back and 
> look at improving our cold perf time. Gentlemen, start your engines! 
> (and then promptly stop them!)
> 
> To kick things off, here's a fully-timed runhprof run of starting up a 
> fresh Rails app's console. Notice that the majority of hotspots are in 
> the interpreter, and these top 30 account for 44% of accumulated time:
> 
> CPU TIME (ms) BEGIN (total = 226580928) Wed May 28 01:33:54 2008
> rank   self  accum   count trace method
>     1  2.88%  2.88%    5479 322419 
> org.jruby.evaluator.ASTInterpreter.evalInternal
>     2  1.91%  4.79%     748 323074 
> org.jruby.runtime.load.LoadService.smartLoad
>     3  1.90%  6.69%     746 323077 org.jruby.RubyKernel.require
>     4  1.90%  8.59%     746 323075 
> org.jruby.runtime.load.LoadService.require
>     5  1.81% 10.41%     474 318369 org.jruby.Ruby.loadFile
>     6  1.81% 12.22%     471 323073 
> org.jruby.runtime.load.ExternalScript.load
>     7  1.80% 14.02%    2440 323086 
> org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall
>     8  1.72% 15.74%    2071 318356 
> org.jruby.evaluator.ASTInterpreter.evalInternal
>     9  1.71% 17.45%     482 318359 
> org.jruby.evaluator.ASTInterpreter.rootNode
>    10  1.71% 19.16%     479 318360 
> org.jruby.evaluator.ASTInterpreter.evalInternal
>    11  1.71% 20.87%     475 318361 org.jruby.evaluator.ASTInterpreter.eval
>    12  1.64% 22.52%     849 323601 
> org.jruby.evaluator.ASTInterpreter.blockNode
>    13  1.64% 24.16%    2564 322070 
> org.jruby.evaluator.ASTInterpreter.evalInternal
>    14  1.55% 25.71%   11202 322546 
> org.jruby.evaluator.ASTInterpreter.evalInternal
>    15  1.53% 27.24%     642 331934 
> org.jruby.RubyKernelInvoker$require_s_method_1_0.call
>    16  1.41% 28.65%    2674 328510 
> org.jruby.evaluator.ASTInterpreter.blockNode
>    17  1.41% 30.06%    2202 325052 
> org.jruby.evaluator.ASTInterpreter.callNode
>    18  1.40% 31.46%    4097 323088 
> org.jruby.evaluator.ASTInterpreter.fCallNode
>    19  1.38% 32.84%    2577 323087 
> org.jruby.runtime.CallSite$InlineCachingCallSite.call
>    20  1.36% 34.20%    1401 328581 org.jruby.evaluator.ASTInterpreter.eval
>    21  1.35% 35.56%     472 328584 
> org.jruby.internal.runtime.methods.DefaultMethod.call
>    22  1.34% 36.90%     463 328583 
> org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall
>    23  1.30% 38.20%     549 330274 
> org.jruby.evaluator.ASTInterpreter.evalInternal
>    24  1.05% 39.25%     849 328585 
> org.jruby.internal.runtime.methods.DefaultMethod.call
>    25  0.98% 40.23%     568 332399 
> org.jruby.internal.runtime.methods.JavaMethod$JavaMethodOneBlock.call
>    26  0.97% 41.20%     174 330294 
> org.jruby.evaluator.ASTInterpreter.rescueNode
>    27  0.95% 42.15%      93 331939 
> org.jruby.evaluator.ASTInterpreter.fCallNode
>    28  0.94% 43.09%      87 331938 
> org.jruby.runtime.CallSite$InlineCachingCallSite.call
>    29  0.77% 43.87%   14333 326194 org.jruby.evaluator.ASTInterpreter.eval
>    30  0.77% 44.64%   14333 326193 
> org.jruby.evaluator.ASTInterpreter.evalInternal
> 
> - Charlie
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
> 
>     http://xircles.codehaus.org/manage_email
> 
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Studying-startup-time-tp17506106p17506930.html
Sent from the JRuby - Dev mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to