WProf: Identify the bottleneck activities of your Web page


Tool

We released our WProf-instrumented Chrome (a.k.a. WProf-Chrome). See below for instructions to download, build, and run our tool.


Download

The software is based on Chrome Version 22.0.1195.0. We are currently in the process of integrating WProf into higher versions of Chrome.

Binaries

Linux: 32-bit Ubuntu 12.04 (might work on Ubuntu 13)
MacOS X: 10.6.8 Snow Leopard (doesn't work on 10.7 or higher versions)

Source Code

WProf-1.0 (A patch based on Chrome Version 22.0.1195.0)


Build Instructions

Before building WProf, the source code of Chrome 22.0.1195.0 is required. The general instructions to download and build Chrome are at the Chromium project (Windows, Linux, Mac). Here, we give examples of building on Mac and Linux (might have deprecated).

Note that Google might have changed the tool chain to download/build older versions of Chrome. Please search a bit on how to build an older version of Chrome for your platform. If you are unable to build Chrome 22.*, we also provide binaries for 32-bit Ubuntu 12.04 and MacOS X 10.6.8 (Snow Leopard). We are in the process of integrating WProf into higher versions of Chrome and MacOS X (e.g., 10.8 or higher).
Mac OSX

1. Make sure that you have downloaded google depot_tools.

2. Enter the "chrome/" directory.

3. Configure the Chromium version to download.

$ gclient config https://src.chromium.org/chrome/releases/22.0.1195.0

4. Download the Chromium source code. This will take some time.

$ gclient sync

5. Apply the patches.

$ cd src
$ patch -p0 -i ../wprof_chrome.diff
$ cd third_party/WebKit/Source/
$ patch -p0 -i ../../../../wprof_webkit.diff
$ cd ../../..

6. Generate GYP.

$ GYP_GENERATORS=ninja GYP_DEFINES=clang=1 ./build/gyp_chromium

7. Build. This will take some time.

$ ninja -C out/Release chrome

If you have build successfully, you should be able to see Chromium.app in the out/Release/ directory.

We tested the build process on Mac OS X 10.6.8. However, it might run into problems while building on Mountain Lion because of compatibility issues with XCode 4.

Linux

1. Make sure that you have downloaded google depot_tools.

2. Enter the "chrome/" directory.

3. Configure the Chromium version to download.

$ gclient config https://src.chromium.org/chrome/releases/22.0.1195.0

4. Download the Chromium source code. This will take some time.

$ gclient sync

5. Apply the patches.

$ cd src
$ patch -p0 -i ../wprof_chrome.diff
$ cd third_party/WebKit/Source/
$ patch -p0 -i ../../../../wprof_webkit.diff
$ cd ../../..

6. Generate GYP.

$ GYP_GENERATORS=ninja GYP_DEFINES="werror=" ./build/gyp_chromium

7. Build. This will take some time.

$ ninja -C out/Release chrome

If you have build successfully, you should be able to see the executable 'chrome' in the out/Release/ directory.

We tested the build process on a 32-bit Ubuntu 12.04 machine.


Run Instructions

Run the binary in out/Release/. Since we write WProf logs to stderr channel, obtaining the logs requires redirecting stderr channel to a file. We haven't yet released the code to analyze the logs to the public. Please send us an email (wangxiao@cs.washington.edu) if you want to run the analysis code.