Basic benchmarks to measure HTML5 performance and support for game related features
Running the Tests
-----------------
1. Install [Node.js][1] (0.6.0+).
2. Run in shell: `npm install`
3. Run in shell: `node server`
4. Open in browser: `http://localhost:3002/`
5. Configure parameters of the test run, if desired.
6. Click "Run Tests".
7. If you uploaded results, see the `server/uploads/` directory.
[1]: http://nodejs.org/
Interpreting Results
--------------------
### Sprite tests
The `Source type` indicates the data being displayed.
The `Technique` indicates the browser method used to render the data.
The `Test type` indicates what transformations were performed on the data using
the technique.
The `JS time (ms)` result shows how much JavaScript time was spent rendering
the objects in one second.
The `Objects at 30FPS` result shows how many objects were able to be rendered
while rendering at 30 frames per second.
### Audio latency test
The `Cold play latency` indicates how much time it took between `.play()` and
the first subsequent `play` or `timeupdate` event on a new WAV `<audio>`
element.
The `Warm play latency` indicates how much time it took between `.play()` and
the first subsequent `play` or `timeupdate` event on a WAV `<audio>` element
which has already played.
### Canvas text test
The `Score` result shows how many renders could be made per 100 milliseconds.
Code structure
--------------
Test cases are build into a recursive object structure. Test cases are run
through the test runner in `js/testRunner.js`.
Test cases are displayed based upon the specification in `js/tables.js`.
### Sprite tests
Sprite tests are found under `js/sprites/`.
There are three interleaved components:
#### Sources
Each source represents some asset (e.g. a sprite sheet). Maps to the `Source
type` result.
#### Transformers
Transformers modify the source by applying affine or other transformations.
Maps to the `Test type` result.
#### Renderers
Renderers displayed transformed sources using different techniques. Maps to the
`Technique` result. See `js/sprites/renderers/README.md` for details.