Skip to content

Instantly share code, notes, and snippets.

@headius
Created December 20, 2012 05:42
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save headius/4343186 to your computer and use it in GitHub Desktop.
Save headius/4343186 to your computer and use it in GitHub Desktop.
Running a startup flag-timing tool for JRuby users, to find the best flags on their system.
system ~/projects/jruby/blah $ jruby ../../startup_bench/lib/tune.rb 1 'touch Gemfile.lock && rm Gemfile.lock && jruby -S bundle install --quiet --local'
Beginning tuning for `touch Gemfile.lock && rm Gemfile.lock && jruby -S bundle install --quiet --local`
Trying 90 combinations of flags
--------------------------------------------------------------------------------
Last: -J-server
Average time: 8.529s
Overall average: 8.529s
Estimated completion time: 2012-12-19 23:46:27 -0600
--------------------------------------------------------------------------------
Last: -J-client
Average time: 8.431s
Overall average: 8.48s
Estimated completion time: 2012-12-19 23:46:23 -0600
--------------------------------------------------------------------------------
...
--------------------------------------------------------------------------------
Last: -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -X-C -Xcompile.invokedynamic=false
Average time: 2.361s
Overall average: 5.486314606741572s
Estimated completion time: 2012-12-19 23:41:54 -0600
--------------------------------------------------------------------------------
Last: -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -X-C -Xcompile.invokedynamic=true
Average time: 2.491s
Overall average: 5.453033333333332s
Estimated completion time: 2012-12-19 23:41:51 -0600
--------------------------------------------------------------------------------
For command `touch Gemfile.lock && rm Gemfile.lock && jruby -S bundle install --quiet --local` the startup times are:
--------------------------------------------------------------------------------
2.361 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -X-C -Xcompile.invokedynamic=false
2.380 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -X-C -Xcompile.invokedynamic=false
2.484 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -X-C
2.491 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -X-C -Xcompile.invokedynamic=true
2.509 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -X-C -Xcompile.invokedynamic=true
2.524 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -X-C
2.529 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -Xjit.threshold=500 -Xcompile.invokedynamic=false
2.547 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -Xcompile.invokedynamic=false
2.583 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -Xjit.threshold=500 -Xcompile.invokedynamic=false
2.605 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -Xcompile.invokedynamic=false
3.277 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -Xjit.threshold=500
3.306 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -Xjit.threshold=500 -Xcompile.invokedynamic=true
3.339 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -Xjit.threshold=500
3.367 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -Xjit.threshold=500 -Xcompile.invokedynamic=true
3.704 -J-XX:+TieredCompilation -J-noverify -X-C -Xcompile.invokedynamic=false
3.782 -J-XX:+TieredCompilation -X-C -Xcompile.invokedynamic=false
3.826 -J-XX:+TieredCompilation -X-C -Xcompile.invokedynamic=true
3.854 -J-XX:+TieredCompilation -X-C
3.933 -J-XX:+TieredCompilation -J-noverify -Xjit.threshold=500 -Xcompile.invokedynamic=false
3.947 -J-XX:+TieredCompilation -J-noverify -X-C -Xcompile.invokedynamic=true
4.009 -J-XX:+TieredCompilation -Xjit.threshold=500 -Xcompile.invokedynamic=false
4.028 -J-XX:+TieredCompilation -J-noverify -X-C
4.132 -J-XX:+TieredCompilation -Xcompile.invokedynamic=false
4.319 -J-XX:+TieredCompilation -J-noverify -Xcompile.invokedynamic=false
4.422 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -Xcompile.invokedynamic=true
4.482 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify
4.491 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -Xcompile.invokedynamic=true
4.501 -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1
4.996 -J-client -X-C -Xcompile.invokedynamic=false
5.014 -J-server -X-C -Xcompile.invokedynamic=false
5.029 -J-client -J-noverify -X-C -Xcompile.invokedynamic=false
5.030 -J-XX:-TieredCompilation -X-C -Xcompile.invokedynamic=false
5.086 -J-server -J-noverify -X-C -Xcompile.invokedynamic=false
5.117 -J-XX:-TieredCompilation -J-noverify -X-C -Xcompile.invokedynamic=false
5.145 -J-server -X-C -Xcompile.invokedynamic=true
5.153 -J-XX:-TieredCompilation -J-noverify -X-C
5.179 -J-XX:+TieredCompilation -J-noverify -Xjit.threshold=500
5.192 -J-server -J-noverify -X-C
5.192 -J-XX:+TieredCompilation -J-noverify -Xjit.threshold=500 -Xcompile.invokedynamic=true
5.196 -J-XX:-TieredCompilation -X-C
5.233 -J-client -X-C -Xcompile.invokedynamic=true
5.235 -J-client -J-noverify -X-C
5.244 -J-XX:-TieredCompilation -J-noverify -X-C -Xcompile.invokedynamic=true
5.249 -J-server -X-C
5.265 -J-client -J-noverify -X-C -Xcompile.invokedynamic=true
5.277 -J-server -J-noverify -X-C -Xcompile.invokedynamic=true
5.313 -J-client -X-C
5.319 -J-XX:-TieredCompilation -X-C -Xcompile.invokedynamic=true
5.386 -J-XX:+TieredCompilation -Xjit.threshold=500
5.409 -J-server -Xcompile.invokedynamic=false
5.435 -J-client -Xcompile.invokedynamic=false
5.442 -J-XX:-TieredCompilation -Xcompile.invokedynamic=false
5.443 -J-XX:+TieredCompilation -Xjit.threshold=500 -Xcompile.invokedynamic=true
5.459 -J-client -Xjit.threshold=500 -Xcompile.invokedynamic=false
5.491 -J-server -Xjit.threshold=500 -Xcompile.invokedynamic=false
5.491 -J-XX:-TieredCompilation -Xjit.threshold=500 -Xcompile.invokedynamic=false
5.501 -J-server -J-noverify -Xjit.threshold=500 -Xcompile.invokedynamic=false
5.523 -J-XX:-TieredCompilation -J-noverify -Xjit.threshold=500 -Xcompile.invokedynamic=false
5.554 -J-XX:-TieredCompilation -J-noverify -Xcompile.invokedynamic=false
5.571 -J-client -J-noverify -Xcompile.invokedynamic=false
5.579 -J-client -J-noverify -Xjit.threshold=500 -Xcompile.invokedynamic=false
5.773 -J-server -J-noverify -Xcompile.invokedynamic=false
6.760 -J-server -J-noverify -Xjit.threshold=500
6.781 -J-client -Xjit.threshold=500 -Xcompile.invokedynamic=true
6.807 -J-XX:-TieredCompilation -Xjit.threshold=500
6.833 -J-client -J-noverify -Xjit.threshold=500
6.846 -J-server -Xjit.threshold=500 -Xcompile.invokedynamic=true
6.851 -J-server -J-noverify -Xjit.threshold=500 -Xcompile.invokedynamic=true
6.854 -J-XX:-TieredCompilation -J-noverify -Xjit.threshold=500
6.866 -J-client -J-noverify -Xjit.threshold=500 -Xcompile.invokedynamic=true
6.926 -J-XX:-TieredCompilation -Xjit.threshold=500 -Xcompile.invokedynamic=true
6.933 -J-XX:-TieredCompilation -J-noverify -Xjit.threshold=500 -Xcompile.invokedynamic=true
6.958 -J-server -Xjit.threshold=500
6.965 -J-client -Xjit.threshold=500
7.166 -J-XX:+TieredCompilation -J-noverify
7.178 -J-XX:+TieredCompilation
7.335 -J-XX:+TieredCompilation -J-noverify -Xcompile.invokedynamic=true
7.667 -J-XX:+TieredCompilation -Xcompile.invokedynamic=true
8.367 -J-client -Xcompile.invokedynamic=true
8.431 -J-client
8.471 -J-XX:-TieredCompilation -J-noverify
8.516 -J-server -Xcompile.invokedynamic=true
8.529 -J-server
8.541 -J-client -J-noverify -Xcompile.invokedynamic=true
8.562 -J-XX:-TieredCompilation -Xcompile.invokedynamic=true
8.586 -J-XX:-TieredCompilation
8.632 -J-server -J-noverify
8.656 -J-server -J-noverify -Xcompile.invokedynamic=true
8.678 -J-XX:-TieredCompilation -J-noverify -Xcompile.invokedynamic=true
8.825 -J-client -J-noverify
@miry
Copy link

miry commented Oct 10, 2014

Where I can get this file: ../../startup_bench/lib/tune.rb?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment