Firefox/Projects/StartupPerformance/MeasuringStartup: Difference between revisions
< Firefox | Projects | StartupPerformance
Jump to navigation
Jump to search
(Added section on Windows setup.) |
No edit summary |
||
Line 4: | Line 4: | ||
#create a new profile, run Firefox with it at least once, so all files are created, etc | #create a new profile, run Firefox with it at least once, so all files are created, etc | ||
#execute this command, with your profile name substituted, and invoking firefox in a way appropriate for your platform: | #execute this command, with your profile name substituted, and invoking firefox in a way appropriate for your platform: | ||
<pre><code>./firefox -P YourProfileName -no-remote file:///..../startup.html#`python -c 'import time; print int(time.time() * 1000);'` </code><code></code></pre> | |||
<code>./firefox -P YourProfileName -no-remote file:///..../startup.html#`python -c 'import time; print int(time.time() * 1000);'` </code><code></code> | |||
== Setup on Windows == | == Setup on Windows == | ||
To run these tests on Windows, you can follow these steps (after step 1 and 2 above):<br> | To run these tests on Windows, you can follow these steps (after step 1 and 2 above):<br> | ||
#Download and install [http://python.org/download/ Python].<br> | #Download and install [http://python.org/download/ Python].<br> | ||
#Download and install [http://cygwin.com/ Cygwin]. The default settings should be sufficient.<br> | #Download and install [http://cygwin.com/ Cygwin]. The default settings should be sufficient.<br> | ||
#Add python.exe or its containing folder to the PATH (or use the full path to the executable in the command below).<br> | #Add python.exe or its containing folder to the PATH (or use the full path to the executable in the command below).<br> | ||
#In the Cygwin console, run the following command:<br> | #In the Cygwin console, run the following command:<br> | ||
<pre>/cygdrive/c/.../firefox.exe -P YourProfileName -no-remote file:///C:/.../startup.html#`python.exe -c 'import t | <pre>/cygdrive/c/.../firefox.exe -P YourProfileName -no-remote file:///C:/.../startup.html#`python.exe -c 'import t | ||
ime; import sys; sys.stdout.write(str(int(time.time() * 1000)));'` | ime; import sys; sys.stdout.write(str(int(time.time() * 1000)));'` | ||
</pre> | </pre> | ||
Startup times using this method will be a little bloated due to the overhead introduced by the Cygwin console, but should still be reliable if compared with each other.<br> | Startup times using this method will be a little bloated due to the overhead introduced by the Cygwin console, but should still be reliable if compared with each other.<br> | ||
== Cold startup on Mac == | == Cold startup on Mac == |
Revision as of 23:45, 21 June 2010
The following method is based on a blog post byVlad. The steps are below.
- save this html file somewhere locally
- create a new profile, run Firefox with it at least once, so all files are created, etc
- execute this command, with your profile name substituted, and invoking firefox in a way appropriate for your platform:
<code>./firefox -P YourProfileName -no-remote file:///..../startup.html#`python -c 'import time; print int(time.time() * 1000);'` </code><code></code>
Setup on Windows
To run these tests on Windows, you can follow these steps (after step 1 and 2 above):
- Download and install Python.
- Download and install Cygwin. The default settings should be sufficient.
- Add python.exe or its containing folder to the PATH (or use the full path to the executable in the command below).
- In the Cygwin console, run the following command:
/cygdrive/c/.../firefox.exe -P YourProfileName -no-remote file:///C:/.../startup.html#`python.exe -c 'import t ime; import sys; sys.stdout.write(str(int(time.time() * 1000)));'`
Startup times using this method will be a little bloated due to the overhead introduced by the Cygwin console, but should still be reliable if compared with each other.
Cold startup on Mac
The following is specific to Mac OSX and is required to evict Firefox code pages from memory and clear the Unified Buffer Cache (UBC). purge
does NOT do this.
#!/bin/sh FF=/Volumes/Fujitsu80Gb diskutil unmount force $FF diskutil mount /dev/disk1s2 $FF/Minefield$*.app/Contents/MacOS/firefox-bin -no-remote -foreground -P clean file://$FF/startup.html#`python -c 'import time; print int(time.time() * 1000);'`
This assumes that your removable media is at /dev/disk1s2.