22
33[ ![ Build Status] ( https://travis-ci.org/v8/web-tooling-benchmark.svg?branch=master )] ( https://travis-ci.org/v8/web-tooling-benchmark ) [ ![ styled with prettier] ( https://img.shields.io/badge/styled_with-prettier-ff69b4.svg )] ( https://github.com/prettier/prettier )
44
5- This is work-in-progress benchmark suite that tries to measure the
6- JavaScript related workloads required by Web Developers nowadays.
7- It's the explicit goal not to measure I/O or other non-JavaScript
8- related tasks.
5+ This is a benchmark suite designed to measure the JavaScript related
6+ workloads commonly used by Web Developers nowadays, for example the
7+ core workloads in popular tools like [ Babel] ( https://github.com/babel/babel )
8+ or [ TypeScript] ( https://github.com/Microsoft/TypeScript ) . It's the
9+ explicit goal to measure ** only** the JavaScript performance aspect,
10+ which is affected by the JavaScript engine, and not measure I/O or
11+ other unrelated aspects.
912
1013See the [ in-depth
1114analysis] ( https://github.com/v8/web-tooling-benchmark/blob/master/docs/in-depth.md )
1215for a detailed description of the tests included in this benchmark suite.
1316
1417## Building
1518
19+ > This was tested with Node 6, Node 7 and Node 8.
20+
1621Building the benchmark suite is just a matter of running
1722
1823```
1924$ npm install
2025```
2126
22- assuming that you have a working [ Node] ( https://nodejs.org ) installation. This
23- was only tested with Node thus far, and it might not work properly with earlier
24- versions of Node. Once the command is done, it produces a bundled version that
25- is suitable to run in JS shells (i.e. ` d8 ` , ` jsc ` or ` jsshell ` ) in ` dist/run.js `
26- and another bundle in ` dist/bundle.js ` that is used by the browser version in
27- ` dist/index.html ` .
27+ assuming that you have a working [ Node] ( https://nodejs.org ) installation. Once
28+ the command is done, it produces a bundled version that is suitable to run in
29+ JS shells (i.e. ` d8 ` , ` jsc ` or ` jsshell ` ) in ` dist/run.js ` and another bundle
30+ in ` dist/bundle.js ` that is used by the browser version in ` dist/index.html ` .
2831
2932## Running
3033
@@ -33,57 +36,28 @@ i.e. like this:
3336
3437```
3538$ node src/cli
36- Running Web Tooling Benchmark 0.0.2 ...
39+ Running Web Tooling Benchmark 0.2.0 ...
3740--------------------------------------
38- babel: 7.42 runs/sec ±6.67%
39- babylon: 13.10 runs/sec ±6.51%
40- buble: 6.60 runs/sec ±9.79%
41- chai: 13.20 runs/sec ±2.01%
42- lebab: 10.14 runs/sec ±5.94%
43- prettier: 8.27 runs/sec ±9.31%
44- source-map: 16.50 runs/sec ±6.46%
45- typescript: 10.29 runs/sec ±9.79%
46- uglify-js: 7.21 runs/sec ±11.06%
47- uglify-es: 17.72 runs/sec ±4.67%
41+ acorn: 10.16 runs/sec ±10.38%
42+ babel: 8.78 runs/sec ±2.89%
43+ babylon: 9.31 runs/sec ±8.50%
44+ buble: 7.91 runs/sec ±9.95%
45+ chai: 15.95 runs/sec ±2.50%
46+ coffeescript: 7.06 runs/sec ±11.46%
47+ espree: 6.75 runs/sec ±14.73%
48+ esprima: 6.49 runs/sec ±13.16%
49+ jshint: 9.85 runs/sec ±10.13%
50+ lebab: 12.20 runs/sec ±7.63%
51+ prepack: 8.88 runs/sec ±9.47%
52+ prettier: 11.01 runs/sec ±8.09%
53+ source-map: 19.43 runs/sec ±1.31%
54+ typescript: 12.71 runs/sec ±8.55%
55+ uglify-js: 9.49 runs/sec ±4.89%
56+ uglify-es: 22.84 runs/sec ±4.86%
4857--------------------------------------
49- Geometric mean: 11.41 runs/sec
58+ Geometric mean: 10.45 runs/sec
5059```
5160
5261Or you open a web browser and point it to ` dist/index.html ` , or you can use one
53- of the engine JS shells (` d8 ` , ` jsc ` or ` jsshell ` ) to run the special bundle
54- in ` dist/run.js ` .
55-
56- ## Philosophy
57-
58- I love the web! I love working on [ Chromium] ( http://www.chromium.org ) - more
59- specifically on [ V8] ( http://v8project.org ) - to make the web even better! But
60- building the best browser is only a small piece of the puzzle. I see browsers
61- as similar to TV screens: They provide you with the * frame* . Having an awesome
62- TV screen is nice, but doesn't buy you anything if there's no content and no
63- one providing the infrastructure to deliver the content.
64- With the web it's very similar, and so for the continued success of the web
65- it's important to not only focus on the browser, but also support the
66- content producers in the best way we can to ensure that we continue to have
67- great websites with interesting content. V8 is in a kind of unique position
68- here at this point in time, since it doesn't only power all Chromiun based
69- browsers, but also powers [ Node.js] ( https://www.nodejs.org ) , which in turn
70- provides the runs a lot of the enterprise services today, but even more
71- importantly powers almost all the tooling used to create the web experiences.
72-
73- And this tooling (plus the support story around it) is one of the critical
74- factors for companies when choosing a platform. The web platform today has
75- an amazing set of tools, a very active community around most of them, which
76- makes the web attractive as the main platform for so many companies. Besides
77- several other aspects, it's important that these tools run reasonably fast.
78- For example for developers that use [ test-driven development
79- (TDD)] ( https://en.wikipedia.org/wiki/Test-driven_development ) it's crucial
80- that the tests execute quickly. Or when using
81- [ TypeScript] ( https://www.typescriptlang.org ) for development, it's important
82- that the type checking and compilation to JavaScript doesn't take too long,
83- especially when combined with a test-driven work-flow.
84-
85- Driving progress on the engine related aspects of the web tooling is the
86- main motivation behind this benchmark suite. It tries to isolate the
87- JavaScript heavy workloads from the most common tools used by the web
88- platform. Specifically I/O and other non-JavaScript related aspects are
89- excluded from the measurement.
62+ of the engine JS shells (` d8 ` , ` jsc ` , ` ch ` or ` jsshell ` ) to run the special bundle
63+ in ` dist/run.js ` .
0 commit comments