Performance:Tinderbox Tests: Difference between revisions

Replaced content with "Please reference https://wiki.mozilla.org/Buildbot/Talos Buildbot/Talos instead."
(Replaced content with "Please reference https://wiki.mozilla.org/Buildbot/Talos Buildbot/Talos instead.")
 
Line 1: Line 1:
<p style="color: red">Much of this is out of date/incorrect -- needs updating, ask in #developers before proceeding.  [[User:VladVukicevic|VladVukicevic]] 20:56, 3 April 2009 (UTC)</p>
Please reference [[https://wiki.mozilla.org/Buildbot/Talos Buildbot/Talos]] instead.
 
Original document imported from http://www.mozilla.org/performance/tinderbox-tests.html and original author is Chris McAfee <mcafee@netscape.com>.
 
= Notes before starting =
 
*  When running these tests on your local machine, be sure to turn off extra stuff to reduce noise in your results. This means, irc, browsers, aim, httpd, things like that.
* Test with an optimized build. --enable-optimize, --disable-debug
* Running X & twm will reduce gnome noise.
* Install the Time::HiRes perl module for better timer resolution (see <code>mozilla/tools/performance/startup/gettime.pl</code>).
* In the commands below, <code>&lt;appname&gt;</code> is <code>firefox</code> or <code>seamonkey</code> or <code>mozilla</code> or whatever you're testing.
 
= Preferences =
 
* Set this pref for stdout test output:
** user_pref("browser.dom.window.dump.enabled", true);
* resource:///res/bloatcycle.html for the bloat and leak tests requires:
** user_pref("dom.disable_open_during_load", false);
** user_pref("dom.allow_scripts_to_close_windows", true);
 
= Ts: Startup time =
 
This test passes in begin time as a cgi argument, and JS onload handler in startup-test.html computes the end time. The page is loaded 10 times, and the shortest startup time is used as the final score.
 
    cvs co mozilla/tools/performance/startup
    startup-unix.pl <path>/dist/bin/&lt;appname&gt;
 
= Txul: XUL window open time =
 
10 windows are opened/closed and median and average times are printed.
 
    &lt;appname&gt; -chrome "file://<path>/mozilla/xpfe/test/winopen.xul"
 
Note that you need special security prefs for this to work - see details in {{bug|584146}}. You can use the latest [[StandaloneTalos]] to make sure you are running exactly like the Talos servers do.
 
= Tp, Tp2 and the Pageloader extension: Page load time =
 
jrgm's pageload test. You need to set up a server to run this. The source code is at http://lxr.mozilla.org/mozilla/source/tools/page-loader/ but note that it relies on some outdated Perl modules. Point your browser at this server and it crunches for up to 15-20 min depending on your machine speed, and produces a graph and average time value.
 
If you have a slow machine (e.g. < 300MHz) you may need to increase the timeout value from 15000 to say 30000.
 
Alternatively, use darin's standalone Tp2 test:
http://lxr.mozilla.org/mozilla/source/tools/performance/pageload/
 
Or rhelmer's pageloader extension:
http://hg.mozilla.org/build/talos/file/tip/talos/pageloader
 
Tp2 runs inside the content area of the browser, while the pageloader extension runs without browser chrome. They are based on the same (Javascript) code, and both produce numbers suitable for reporting to Tinderbox or the graph server.
 
It is recommended that you save all of the sites you wish to test to a local webserver, so that the network and remote webservers don't introduce unwanted variance.
 
= Tdhtml: DHTML performance =
 
This test runs a number of DHTML testcases several times, then prints out median and average times for each testcase, as well as the raw data, and the geometric mean of the median times. To run, just load the [http://www.mozilla.org/performance/test-cases/dhtml/runTests.html test driver].  The [http://www.mozilla.org/performance/test-cases/dhtml/ list of tests] is also available.
 
= Classic (refcnt) Bl/Lk: Bloat & Leak numbers =
 
For a non-debug build, add this to your <code>.mozconfig</code>:
 
  ac_add_options --enable-logrefcnt
 
and reconfigure and rebuild. Then run the app on the bloaturls list of urls with the environment variable XPCOM_MEM_BLOAT_LOG set to 1 to dump bloat and leak summaries to stdout:
 
  cd $(OBJDIR)/_leaktest
  export XPCOM_MEM_BLOAT_LOG=1
  python leaktest.py > bloat.log
 
If you want to compare two runs (e.g. test a change) you can compare two logs using:
 
  $(SRCDIR)/tools/rb/bloatdiff.pl bloat1.log bloat2.log
 
See http://www.mozilla.org/projects/xpcom/MemoryTools.html for details.
 
= Trace-Malloc Bl/Lk: Bloat & Leak numbers =
 
Add this to your <code>.mozconfig</code>:
 
  mk_add_options MOZ_CO_MODULE="mozilla/tools/trace-malloc"
  ac_add_options --enable-trace-malloc
 
Then do:
 
  cvs co mozilla/tools/trace-malloc
 
and rebuild.  Then run the leak test with --trace-malloc (I haven't tested this, but the old instructions are clearly wrong; somebody should test this and remove this note):
 
  cd $(OBJDIR)/_leaktest
  python leaktest.py --trace-malloc=malloc.log
  cd $(OBJDIR)/dist/bin/
  ./leakstats ../../_leaktest/malloc.log
 
More info about both bloat tests [http://www.mozilla.org/performance/leak-brownbag.html#tbox in the leak brownbag].
 
= Tr/Tgfx/Tsvg: Rendering Performance numbers =
 
These numbers measure raw rendering speed, without network or layout overhead.  See [[Mozilla2:Trender]] for more information.
Confirmed users
3,376

edits