NOT MAINTAINED ANYMORE! New project is located on https://github.com/mozilla-frontend-infra/js-perf-dashboard -- AreWeFastYet is a set of tools used for benchmarking the major browser's JavaScript virtual machines against each other, as well as reporting the results on a website as insightful graphs showing the evolution of performance over time.
Перейти к файлу
David Anderson eee684fcf3 Merge pull request #9 from BenjBouv/v8-compat
Ensure compatibility with d8
2013-06-28 11:20:09 -07:00
benchmarks Ensure compatibility with d8 2013-06-28 00:55:58 -07:00
database Update schema.sql. 2013-06-21 14:40:08 -07:00
driver Don't submit unused os and cpu variables. 2013-06-28 11:18:38 -07:00
server Add license information. 2013-06-20 17:11:05 -07:00
website Commit flot changes to allow disabling selections. 2013-06-21 21:51:04 +00:00
LICENSE Add license information. 2013-06-20 17:11:05 -07:00
README Add driver/run.sh since this is fairly useful. 2013-06-21 15:01:46 -07:00

README

The latest AWFY is five components:
 (1) MySQL database that stores statistics.
 (2) Hidden PHP script on the webserver, where stats get sent.
 (3) Python driver that runs on each benchmark computer, and submits stats.
 (4) Python aggregator that builds JSON data from the DB.
 (5) Static HTML as the frontpage, that queries JSON via XHR.

NOTE: (2), (3), and (5) must be on the same webserver, otherwise timestamps
might not be computed correctly.

######### SET UP ##########
Setting up (1):
  Run database/schema.sql

Setting up (2):
  Drop website/UPDATE.PHP and website/internals.php somewhere, and
  rename UPDATE.PHP to something secret.

Setting up (3):
  I set it up like:

   git clone http://github.com/dvander/arewefastyet awfy
   cd awfy
   mkdir repos
   cd repos

   # Get V8
   svn checkout http://v8.googlecode.com/svn/branches/bleeding_edge/ v8

   # Get Mozilla
   hg clone http://hg.mozilla.org/integration/mozilla-inbound

   # Get WebKit - Mac/Linux only
   svn checkout https://svn.webkit.org/repository/webkit/trunk WebKit

   cd ../driver
   cp awfy.config.sample awfy.config

  (a) Add a database entry for the machine configuration.
  (b) Edit awfy.config to match the build architecture you want, and machine
      database entry.
  (c) Run dostuff.py periodically - Mozilla uses "run.sh" which will run
      continuously, since a cronjob could run overlapping jobs.

   # Note, interrupting dostuff.py can cause problems with subversion, for
   # example, the WebKit repository may become stuck and need an svn cleanup
   # or an rm -rf and clean checkout. For sanity, run.sh will pause its next
   # run if it sees a /tmp/awfy lock in place, and this can be used to wait.

   # Note It is not safe to share multiple AWFY instances from the same
   # repository, since C++ object files are generally re-used and may
   # not correctly link depending on build flags.
   

Setting up (4):
  Put awfy-server.config in /etc/, edit it to point at your database and 
  website/data folder. Then put update.py in a cronjob. It will dump files
  where appropriate. AWFY.com does this every 15min.

  update.py generates various JSON files:
   (a) "raw" and "metadata" files cache database queries from run to run,
       so we don't have to make expensive database queries.
   (b) "aggregate" files are used for the front page.
   (c) "condensed" files are used for one level of zooming, so users don't
       have to download the raw data set right away.
   
  The metadata and raw JSON files are updated as needed. The aggregate and
  condensed files are always re-generated from the raw data.

Setting up (5):
  Nothing special needed. Note that our flot is slightly modified, so it
  might not work to just replace it.