pjs/tools/footprint
waterson%netscape.com aa3f89d43a Break runloop out of main, clean up and comment it a bit. 2001-11-19 03:05:51 +00:00
..
lists Somewhere along the line the 5 yahoos at the beginning got removed so I'm 2001-01-23 03:04:12 +00:00
.cvsignore
README.reports Add note about plugins. 2000-11-27 21:07:38 +00:00
buster.cgi Add text to output current URL. 2000-12-12 05:12:49 +00:00
create_dat.awk First checked in. 2001-11-17 05:33:22 +00:00
foldelf.cpp Be sure to set default values\! 2001-10-16 15:45:41 +00:00
foldelf.mk First checked in. 2000-11-28 19:53:59 +00:00
linear-regression.awk Accepts a variable definition Interval=n where n is the number of urls 2001-01-03 01:36:35 +00:00
linux-gdf.mk First checked in. 2001-11-17 05:33:22 +00:00
linux.gnuplot.in First checked in. 2001-11-17 05:33:22 +00:00
thrashview.cpp Break runloop out of main, clean up and comment it a bit. 2001-11-19 03:05:51 +00:00
thrashview.mk First checked in. 2001-11-17 05:33:22 +00:00
top100.txt
watch.sh First checked in. 2001-11-17 05:33:22 +00:00
win32-gdf.mk Fix variables used to pass image name 2000-11-16 21:27:51 +00:00
win32.gnuplot.in First checked in. 2000-11-15 19:57:34 +00:00
wm.cpp Check args for image name 2000-11-16 21:27:37 +00:00

README.reports

                 Gross Dynamic Footprint Reports
             Chris Waterson <waterson@netscape.com>
                      November 16, 2000

This is a short primer on how to run the ``gross dynamic footprint''
reports.

Win32
-----

I've tried this on Win2K. Should work on NT, probably not 98.

1. Configure your machine with a ``standard'' mozilla build
environment, as described at:

  http://www.mozilla.org/build/win32.html

Specifically, you'll need the Cygnus tools (GNU make, awk, sed), which
can be downloaded from:

  http://sourceware.cygnus.com/cygwin/download.html

2. Install the Win32 version of GNUplot, avaialable from:

  ftp://ftp.dartmouth.edu/pub/gnuplot/gnuplot3.7cyg.zip

3. Configure a web server with the ``buster.cgi'' CGI script contained
in this directory.

4. Pull and build a ``release'' build. Besides the normal Win32 flags
described on the Win32 build instructions, be sure that you've set the
following:

  set BUILD_OPT=1
  set MOZ_DEBUG=
  set MOZ_PROFILE=

That is, MOZ_DEBUG and MOZ_PROFILE should be unset.

5. To collect data and build the dynamic footprint graph, type the
following command from the mozilla/tools/footprint directory:

  make --unix -fwin32-gdf.mk \
    BUSTER_URL="http://myserver/cgi-bin/buster.cgi?refresh=10"

(Replace ``myserver'' with the name of the webserver where you
installed ``buster.cgi'' in step 3, above.)

This should:

  - Build ``wm.exe'', which will spy on memory usage.
  - Run the winEmbed program over the top 100 URLs (from top100.txt)
    to generate a file called ``winEmbed.dat''
  - Run mozilla over the top 100 URLs to generate a file called
    ``mozilla.dat''
  - Use gnuplot to create a PNG image file called win32-gdf.png

Linux
-----

1. Configure your machine with a ``standard'' mozilla build
environment, as described at:

  http://www.mozilla.org/build/unix.html

2. Install GNUplot, which is available as an RPM on RedHat-6.2 CDs
(probably others, as well).

3. Configure a web server with the ``buster.cgi'' CGI script contained
in this directory.

4. Pull and build a ``release build''. Here are the settings you
should use in your .mozconfig file:

   ac_add_options --enable-optimize
   ac_add_options --disable-debug
   ac_add_options --enable-strip-libs

5. To collect data and build the dynamic footprint graph, type the
following command from the mozilla/tools/footprint directory:

  make -flinux-gdf.mk \
    BUSTER_URL="http://myserver/cgi-bin/buster.cgi?refresh=10"

(Replace ``myserver'' with the name of the webserver where you
installed ``buster.cgi'' in step 3, above.)

Details, details, details
-------------------------

1. When running these tests, you'll probably want to use predictable
cache settings. You can modify $(DIST)/bin/defaults/pref/all.js to
tweak settings that will be used by [win|gtk]Embed (these programs
ignore profile-specific settings AFAIK). For example, I've used these
to try to cull out cache usage altogether:

  pref("browser.cache.disk_cache_size",       0);
  pref("browser.cache.enable",                false);
  pref("browser.cache.disk.enable",           false);
  pref("browser.cache.memory_cache_size",     0);
  pref("browser.cache.disk_cache_ssl",        false);

I think the image cache has a pref that you can use to shut it off as
well. Haven't found it yet.

2. If you collect data using Mozilla (as Win32 will do, by default), I
recommend using a clean profile for consistency's sake. Otherwise,
results will vary based on random stuff like how big your bookmarks
are, how big your global history is, whether or not you've started
mail, etc.

3. I removed the ``plugin downloader plugin'' libnullplugin.so, as
well as all other plugins, from $(DIST)/bin/plugins so that no plugins
would be loaded.