We released our WProf-instrumented Chrome (a.k.a. WProf-Chrome). See below for instructions to download, build, and run our tool.
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.
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)
WProf-1.0 (A patch based on Chrome Version 22.0.1195.0)
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).
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.
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 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.