I need to profile the rake task. Cause I'm noob I know only how to profile .rb code
like this: ruby -Ilib -S ruby-prof -p graph_html profile.rb > profile.html
But how do I profile a specific Rake task?
I think it's worth mentioning that you might want to profile it using bundle instead of rake directly if you happen to be using bundler.
ruby-prof -p graph_html `which bundle` -- 'exec' 'rake' '-T' > profile.html
Rake is just a Ruby script, so you should be able to just call ruby-prof against rake, in the same way you'd profile any other script.
Given your invocation of ruby-prof, try:
ruby -Ilib -S ruby-prof -p graph_html `which rake` TASK > profile.html
I've just used the following command line:
ruby-prof -p graph_html /usr/local/bin/rake19 import_from_aws file=~/sourcedata batch=test1 > /tmp/profile.html
To profile an invocation of:
rake19 import_from_aws file=~/sourcedata batch=test1
If you want 'coarse' profiling and want to find out which task is the bottleneck, I suggest Mike William's excellent piece of code from here. It worked beautifully when I was profiling my Rake tasks.