Using SlowCalls: Difference between revisions
(→Configure your profile: Unnecessary after JSOP_BEGIN removal) |
m (shrtr bttr) |
||
| (5 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
This page documents the procedure for profiling the browser to produce output like http://people.mozilla.org/~sfink/slowcalls-proto/slowcalls.html | |||
== Getting a tree with instrumentation == | == Getting a tree with instrumentation == | ||
Apply everything in {{bug|580055}} and grab the script process-jscall-logs script from {{bug|558200}}. | |||
== Building with instrumentation == | == Building with instrumentation == | ||
| Line 24: | Line 20: | ||
Set the following environment variables before running your scenario: | Set the following environment variables before running your scenario: | ||
NSPR_LOG_MODULES= | NSPR_LOG_MODULES=SlowCalls:5 | ||
NSPR_LOG_FILE=/tmp/minefield.log | NSPR_LOG_FILE=/tmp/minefield.log | ||
MOZ_FT=/tmp/minefield.tl | MOZ_FT=/tmp/minefield.tl | ||
| Line 30: | Line 26: | ||
For example, I run with this command: | For example, I run with this command: | ||
NSPR_LOG_MODULES= | NSPR_LOG_MODULES=SlowCalls:5 NSPR_LOG_FILE=/tmp/minefield.log MOZ_FT=/tmp/minefield.tl dist/bin/firefox -no-remote -P Blank | ||
Exit the browser when done. | Exit the browser when done. | ||
| Line 40: | Line 36: | ||
process-jscall-logs -f slowcalls /tmp/minefield.log /tmp/minefield.tl | process-jscall-logs -f slowcalls /tmp/minefield.log /tmp/minefield.tl | ||
(though if you're using the default names, you don't actually have to give them on the command line.) This will produce a file /tmp/slowcalls.html | (though if you're using the default names, you don't actually have to give them on the command line.) This will produce a file /tmp/slowcalls.html. | ||
Latest revision as of 01:37, 22 February 2011
This page documents the procedure for profiling the browser to produce output like http://people.mozilla.org/~sfink/slowcalls-proto/slowcalls.html
Getting a tree with instrumentation
Apply everything in bug 580055 and grab the script process-jscall-logs script from bug 558200.
Building with instrumentation
You will need to configure with both --enable-functiontimer and --enable-trace-jscalls:
ac_add_options --enable-trace-jscalls ac_add_options --enable-functiontimer
I've also been running with --enable-debug, which probably provides a lot more verbosity in the functiontimer logs. But I haven't tried without it, so I'm not sure.
ac_add_options --enable-debug
Run your scenario
Set the following environment variables before running your scenario:
NSPR_LOG_MODULES=SlowCalls:5 NSPR_LOG_FILE=/tmp/minefield.log MOZ_FT=/tmp/minefield.tl
For example, I run with this command:
NSPR_LOG_MODULES=SlowCalls:5 NSPR_LOG_FILE=/tmp/minefield.log MOZ_FT=/tmp/minefield.tl dist/bin/firefox -no-remote -P Blank
Exit the browser when done.
Produce the jscalls output
Run the 'process-jscall-logs' script from bug 558200 giving the two log files generated above as options, and the '-f slowcalls' flag:
process-jscall-logs -f slowcalls /tmp/minefield.log /tmp/minefield.tl
(though if you're using the default names, you don't actually have to give them on the command line.) This will produce a file /tmp/slowcalls.html.