Diff
Modified: trunk/Websites/browserbench.org/ChangeLog (243457 => 243458)
--- trunk/Websites/browserbench.org/ChangeLog 2019-03-25 21:12:25 UTC (rev 243457)
+++ trunk/Websites/browserbench.org/ChangeLog 2019-03-25 21:14:50 UTC (rev 243458)
@@ -1,3 +1,11 @@
+2019-03-25 Saam barati <[email protected]>
+
+ Update browserbench.org/JetStream2.0 to the latest version.
+
+ Rubber-stamped by Filip Pizlo.
+
+ * JetStream2.0: Replaced with ../../PerformanceTests/JetStream2.
+
2019-03-18 Saam Barati <[email protected]>
Unreviewed. Rename JetStream directory to JetStream1.1
Deleted: trunk/Websites/browserbench.org/JetStream2.0/in-depth.html (243446 => 243458)
--- trunk/PerformanceTests/JetStream2/in-depth.html 2019-03-25 19:11:31 UTC (rev 243446)
+++ trunk/Websites/browserbench.org/JetStream2.0/in-depth.html 2019-03-25 21:14:50 UTC (rev 243458)
@@ -1,658 +0,0 @@
-<!--
- Copyright (C) 2019 Apple Inc. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- THE POSSIBILITY OF SUCH DAMAGE.
--->
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8" />
-
- <title>JetStream 2 In-Depth Analysis</title>
-
- <link rel="stylesheet" href=""
-
-</head>
-<body>
-<h1 class="logo">
- <div id="jetstreams">
- <a href="" class="logo-image">JetStream 2</a>
- </div>
-</h1>
-<main>
- <article>
- <h2>In-Depth Analysis</h2>
-
- <p>
- JetStream 2 combines together a variety of _javascript_ and Web Assembly benchmarks, covering a variety of
- advanced workloads and programming techniques, and reports a single score that
- balances them using a geometric mean.
- </p>
-
- <p>
- Each benchmark measures a distinct workload, and no single optimization
- technique is sufficient to speed up all benchmarks. Some benchmarks demonstrate tradeoffs, and
- aggressive or specialized optimizations for one benchmark might make another benchmark slower.
- JetStream 2 rewards browsers that start up quickly, execute code quickly, and continue running smoothly.
- </p>
-
- <p>
- Each benchmark in JetStream 2 computes its own individual score. JetStream 2 weighs each
- benchmark equally, taking the geometric mean over each individual benchmark's score to compute
- the overall JetStream 2 score.
- </p>
-
- <p>
- It's not enough to just measure the total running time of a workload.
- Browsers may perform differently for the same _javascript_ workload depending on how many times it
- has run. For example, garbage collection runs periodically, making some iterations take longer than
- others. Code that runs repeatedly gets optimized by the browser, so the first iteration
- of any workload is usually more expensive than the rest.
- </p>
-
- <p>
- For most of the _javascript_ benchmarks in JetStream 2, individual scores
- equally weigh startup performance, worst case performance, and average case
- performance. These three metrics are crucial to running performant _javascript_
- in the browser. Fast startup times lead browsers to loading pages more quickly. Good
- worst case performance ensures web applications can run without hiccups. Fast average
- case performance makes it so that the most advanced web applications can run at all.
- </p>
-
- <p>
- For JetStream 2's Web Assembly benchmarks, individual scores equally weigh startup time and
- total execution time. An important component of JetStream 1 were the asm.js subset of benchmarks. With the release
- of Web Assembly, the importance of asm.js has lessened since many users of asm.js are
- now using Web Assembly. JetStream 2 has converted many of the asm.js benchmarks from
- JetStream 1 into Web Assembly.
- </p>
-
- <p>
- All but one of JetStream'2 _javascript_ benchmarks run for N iterations, where
- N is usually 120. JetStream 2 reports the startup score as the time it takes to run the first iteration.
- The worst case score is the average of the worst M iterations, excluding the first iteration.
- M is always less than N, and is usually 4. The average case score is the average
- of all but the first iteration. These three scores are weighed equally using the geometric
- mean.
- </p>
-
- <p>
- JetStream 2 also includes a _javascript_ benchmark named WSL. WSL is an implementation of a
- GPU shading language written in _javascript_. WSL does not use the above mechanism for scoring
- because it has a long running time. Instead, the WSL benchmark computes its score as the
- geometric mean over two metrics: the time it takes to compile the WSL standard library, and the time
- it takes to run through the WSL specification test suite.
- </p>
-
- <p>
- JetStream 2 includes parts of these benchmark suites that came before it: <a href=""
- <a href="" 2</a>, <a href="" 1</a>,
- <a href="" and <a href="" Tooling Benchmark</a>.
- JetStream 2 also includes new benchmarks inspired by <a href=""
- JetStream 2 also includes a new set of benchmarks that measure the performance of Web Assembly, Web Workers,
- Promises, async iteration, unicode regular expressions, and _javascript_ parsing.
- </p>
-
- <p>
- Note that scores from JetStream 2 are not comparable to scores to other versions
- of any JetStream benchmark.
- </p>
-
- <h3>
- JetStream 2 has 64 subtests:
- </h3>
-
- <dl>
-
- <dt id="WSL">WSL</dt>
- <dd>
- WSL is an implementation of a GPU shading language written in _javascript_.
- WSL measures the time it takes to compile the WSL standard library and the time
- it takes to run through the WSL specification test suite.
- Source code: <a href=""
- </dd>
-
- <dt id="UniPoker">UniPoker</dt>
- <dd>
- UniPoker is a 5 card stud poker simulation using the Unicode playing card code points, U+1F0A1..U+1F0DE,
- as the card representation in code. Scoring of hands is done with three regular expressions, one to check
- for a flush, one to check for straights, and one to check for pairs, three of a kind, and four of a kind.
- Source code: <a href=""
- </dd>
-
- <dt id="uglify-js-wtb">uglify-js-wtb</dt>
- <dd>
- <a href="" is a _javascript_ parser, minifier, compressor, and beautifier toolkit. It is commonly
- used to minimize _javascript_ bundles.
- This benchmark runs UglifyJS on test _javascript_ programs.
- This benchmark stresses string manipulation and regular _expression_ performance.
- A similar version of this benchmark was previously published in the Web Tooling Benchmark.
- Source code: <a href=""
- </dd>
-
- <dt id="typescript">typescript</dt>
- <dd>
- Tests how quickly Microsoft's <a href="" compiler can
- compile itself. More than anything else, this tests how quickly a _javascript_ runtime can optimize
- a large pile of code.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="tsf-wasm">tsf-wasm</dt>
- <dd>
- Runs Filip Pizlo's — of the WebKit team — implementation of a <a href="" Typed Stream Format </a>
- in Web Assembly. The original code is compiled from C to Web Assembly using <a href=""
- Source code: <a href=""
- </dd>
-
- <dt id="tagcloud-SP">tagcloud-SP</dt>
- <dd>
- Parses JSON and generates markup for a <a href=""
- cloud</a> view of the data. Written by Maciej Stachowiak of the WebKit team. Exercises string
- parsing and manipulation. A similar version of this benchmark was originally published in SunSpider.
- Source code: <a href=""
- </dd>
-
- <dt id="string-unpack-code-SP">string-unpack-code-SP</dt>
- <dd>
- This benchmark unpacks various minified _javascript_ libraries. It stresses the speed of various string manipulation
- operations.
- A similar version of this benchmark was previously published in SunSpider.
- Source code: <a href=""
- </dd>
-
- <dt id="stanford-crypto-sha256">stanford-crypto-sha256</dt>
- <dd>
- Measures the performance of the <a href="" hashing algorithm as implemented by the <a href="" _javascript_ Crypto Library</a>. This benchmark stresses numeric analysis and array access.
- This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
- Source code: <a href=""
- </dd>
-
- <dt id="stanford-crypto-pbkdf2">stanford-crypto-pbkdf2</dt>
- <dd>
- Measures the performance of the <a href="" hashing algorithm as implemented by the <a href="" _javascript_ Crypto Library</a>. This benchmark stresses numeric analysis and array access.
- This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
- Source code: <a href=""
- </dd>
-
- <dt id="stanford-crypto-aes">stanford-crypto-aes</dt>
- <dd>
- Measures the performance of the <a href="" hashing algorithm as implemented by the <a href="" _javascript_ Crypto Library</a>. This benchmark stresses numeric analysis and array access.
- This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
- Source code: <a href=""
- </dd>
-
- <dt id="splay">splay</dt>
- <dd>
- Tests the manipulation of <a href="" trees</a>
- represented using plain _javascript_ objects. This benchmark stresses the performance of the garbage collector.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="segmentation">segmentation</dt>
- <dd>
- Uses Web Workers to parallelize the computation of a <a href=""
- time series segmentation</a> algorithm over a sample data set. This code is adapted from an algorithm used in the <a href=""
- WebKit performance dashboard.</a>
- Source code: <a href=""
- </dd>
-
- <dt id="richards">richards</dt>
- <dd>
- Martin Richard's <a href="" language
- benchmark</a> ported to _javascript_. Tests object property access performance.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="richards-wasm">richards-wasm</dt>
- <dd>
- Martin Richard's <a href="" language
- benchmark</a> compiled to a hybrid of Web Assembly and _javascript_. It stresses how quickly
- _javascript_ can call into Web Assembly code.
- Source code: <a href="" <a href=""
- </dd>
-
- <dt id="regexp">regexp</dt>
- <dd>
- Collection of regular expressions found by the V8 team in 2010, curated into a benchmark.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="regex-dna-SP">regex-dna-SP</dt>
- <dd>
- Regular-_expression_-based solution to DNA manipulation from
- <a href="" Great Computer Language Shootout</a>,
- contributed by Jesse Millikan.
- A similar version of this benchmark was previously published in SunSpider.
- Source code: <a href=""
- </dd>
-
- <dt id="raytrace">raytrace</dt>
- <dd>
- <a href="" tracer</a> written in _javascript_ using prototype.js. Tests object construction performance
- and floating point math.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="quicksort-wasm">quicksort-wasm</dt>
- <dd>
- Quicksort benchmark, compiled to Web Assembly with <a href=""
- The original C version of this benchmark was previously published in the LLVM test suite.
- Source code: <a href="" <a href=""
- </dd>
-
- <dt id="prepack-wtb">prepack-wtb</dt>
- <dd>
- <a href="" is a tool that optimizes _javascript_ source code by performing computations at compile
- time instead of run time where possible.
- This benchmark runs Prepack on test _javascript_ programs.
- This benchmark stresses string manipulation and regular _expression_ performance.
- A similar version of this benchmark was previously published in the Web Tooling Benchmark.
- Source code: <a href=""
- </dd>
-
- <dt id="pdfjs">pdfjs</dt>
- <dd>
- Mozilla's <a href="" reader written in _javascript_</a>.
- This benchmark emphasizes array manipulation and bit operations.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="OfflineAssembler">OfflineAssembler</dt>
- <dd>
- Offline Assembler is the lexer, parser, and AST layer of the offline assembler for <a href=""
- It has been ported to _javascript_ from the original Ruby implementation. This test stresses regular _expression_
- performance.
- Source code: <a href=""
- </dd>
-
- <dt id="octane-zlib">octane-zlib</dt>
- <dd>
- A benchmark based on compiling <a href="" to _javascript_ using
- <a href="" Based on the
- <a href="" emscripten test</a>
- but modified to restrict code caching opportunities.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="octane-code-load">octane-code-load</dt>
- <dd>
- Test of code load speed of the jQuery and Closure libraries. Because this test allows
- caching, this is representative of revisiting the same website.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="navier-stokes">navier-stokes</dt>
- <dd>
- Fluid simulation written by <a href="" Hunt</a>. Emphasizes floating point array performance.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="n-body-SP">n-body-SP</dt>
- <dd>
- Classic solar system simulation benchmark from
- <a href="" Great Computer Language Shootout</a>,
- contributed by Isaac Guy. Tests math and object access performance.
- A similar version of this benchmark was previously published in SunSpider.
- Source code: <a href=""
- </dd>
-
- <dt id="multi-inspector-code-load">multi-inspector-code-load</dt>
- <dd>
- Measures the repeated parsing of a modern _javascript_ code base: WebKit's Web Inspector.
- Because this test allows caching, this is representative of revisiting the same website.
- Source code: <a href=""
- </dd>
-
- <dt id="ML">ML</dt>
- <dd>
- ML is an implementation of a <a href="" feedforward neural network.</a>
- The benchmark trains several networks using different <a href="" functions</a>
- and several sample data sets. ML makes heavy use of classes. It relies on the ml-matrix library and does non-trivial matrix math.
- This benchmark was previously published in ARES-6.
- Source code: <a href=""
- </dd>
-
- <dt id="mandreel">mandreel</dt>
- <dd>
- Tests the <a href="" physics engine.
- The physics engine is compiled to _javascript_ with <a href=""
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="lebab-wtb">lebab-wtb</dt>
- <dd>
- <a href="" transpiles ES5 code into ES6/ES7.
- This benchmark runs Lebab on test _javascript_ programs.
- This benchmark stresses string manipulation and regular _expression_ performance.
- A similar version of this benchmark was previously published in the Web Tooling Benchmark.
- Source code: <a href=""
- </dd>
-
- <dt id="json-stringify-inspector">json-stringify-inspector</dt>
- <dd>
- Measures JSON.stringify performance on a set of objects that WebKit's Web Inspector
- stringifies when communicating between the UI and web pages.
- This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
- Source code: <a href=""
- </dd>
-
- <dt id="json-parse-inspector">json-parse-inspector</dt>
- <dd>
- Measures JSON.parse performance on a set of objects that WebKit's Web Inspector
- parses when communicating between the UI and web pages.
- This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
- Source code: <a href=""
- </dd>
-
- <dt id="jshint-wtb">jshint-wtb</dt>
- <dd>
- <a href="" is a static analysis tool that warns about errors
- and potential problems in _javascript_ programs.
- This benchmark runs JSHint on test _javascript_ programs.
- This benchmark stresses string manipulation and regular _expression_ performance.
- A similar version of this benchmark was previously published in the Web Tooling Benchmark.
- Source code: <a href=""
- </dd>
-
- <dt id="HashSet-wasm">HashSet-wasm</dt>
- <dd>
- A Web Assembly benchmark replaying a set of hash table operations performed in WebKit when loading
- a web page. This benchmark was compiled from C++ to Web Assembly using <a href=""
- Source code: <a href="" <a href=""
- </dd>
-
- <dt id="hash-map">hash-map</dt>
- <dd>
- Apache Harmony java.util.HashMap implementation ported to _javascript_ and benchmarked by
- doing hash table insertions, queries, and then iterating the associated entrySet. Tests
- object-oriented _javascript_ idioms and object construction. A similar _javascript_ version
- of this benchmark was originally published as part of the WebKit test suite.
- Source code: <a href=""
- </dd>
-
- <dt id="gcc-loops-wasm">gcc-loops-wasm</dt>
- <dd>
- Example loops used to tune the GCC and LLVM vectorizers, compiled to Web Assembly with
- <a href="" The original C++ version of this benchmark was previously published in the LLVM test suite.
- Source code: <a href="" <a href=""
- </dd>
-
- <dt id="gbemu">gbemu</dt>
- <dd>
- Gameboy emulator written in _javascript_. Tests typed array and
- property access performance.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href="" <a href=""
- </dd>
-
- <dt id="gaussian-blur">gaussian-blur</dt>
- <dd>
- Tests the performance of a _javascript_ implementation of <a href=""
- blur</a> on a test image. Tests numeric analysis speed and uses typed arrays.
- This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
- Source code: <a href=""
- </dd>
-
- <dt id="float-mm.c">float-mm.c</dt>
- <dd>
- Floating point matrix multiply benchmark, compiled to _javascript_ with <a href=""
- The original C version of this benchmark was previously published in the LLVM test suite.
- Source code: <a href="" <a href=""
- </dd>
-
- <dt id="FlightPlanner">FlightPlanner</dt>
- <dd>
- Flight Planner is a benchmark taken from a flight management web application.
- Flight Planner parses aircraft flight plans and computes distance, courses, and elapsed times for legs of flight plans.
- It uses FAA data for airports, navigation aids, and airways. The flight management app was originally written to help
- compete in a flying proficiency event. It stresses regular _expression_ performance.
- Source code: <a href=""
- </dd>
-
- <dt id="first-inspector-code-load">first-inspector-code-load</dt>
- <dd>
- Measures the first-time parsing of a modern _javascript_ code base: WebKit's Web Inspector.
- This models the parsing time of visiting a web site for the first time.
- Source code: <a href=""
- </dd>
-
- <dt id="espree-wtb">espree-wtb</dt>
- <dd>
- <a href="" is a _javascript_ parser written in _javascript_.
- This benchmark runs Espree on test _javascript_ programs.
- This benchmark stresses string manipulation and regular _expression_ performance.
- A similar version of this benchmark was previously published in the Web Tooling Benchmark.
- Source code: <a href=""
- </dd>
-
- <dt id="earley-boyer">earley-boyer</dt>
- <dd>
- Tests two classic Scheme benchmarks translated to _javascript_ using scheme2js. The first
- benchmark is Earley, is a chart parser algorithm created by Jay Earley. The second is
- Boyer, a logic programming benchmark by Bob Boyer. Measures variadic functions and object
- construction.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="delta-blue">delta-blue</dt>
- <dd>
- The classic DeltaBlue benchmark derived from a Smalltalk implementation by Maloney and
- Wolczko. Tests devirtualization of _javascript_ code that uses an idiomatic class hierarchy
- construction.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="date-format-xparb-SP">date-format-xparb-SP</dt>
- <dd>
- Sophisticated date formatting and parsing library test, based on code by Barin Schwartz.
- A similar version of this benchmark was previously published in SunSpider.
- Source code: <a href=""
- </dd>
-
- <dt id="date-format-tofte-SP">date-format-tofte-SP</dt>
- <dd>
- Date and time formatting test, based on code by Svend Tofte. Involves an interesting use
- of <code>eval</code> and also covers string manipulation and _javascript_ library functions.
- A similar version of this benchmark was previously published in SunSpider.
- Source code: <a href=""
- </dd>
-
- <dt id="crypto-sha1-SP">crypto-sha1-SP</dt>
- <dd>
- <a href="" implementation in _javascript_ by
- Paul Johnston and others. Tests interesting integer math idioms.
- A similar version of this benchmark was previously published in SunSpider.
- Source code: <a href=""
- </dd>
-
- <dt id="crypto-md5-SP">crypto-md5-SP</dt>
- <dd>
- <a href="" implementation in _javascript_ by
- Paul Johnston and others. Tests interesting integer math idioms.
- A similar version of this benchmark was previously published in SunSpider.
- Source code: <a href=""
- </dd>
-
- <dt id="crypto-aes-SP">crypto-aes-SP</dt>
- <dd>
- <a href="" AES</a> implementation
- in _javascript_ by Chris Veness. A newer version can be
- found <a href="" Tests integer math.
- A similar version of this benchmark was previously published in SunSpider.
- Source code: <a href=""
- </dd>
-
- <dt id="crypto">crypto</dt>
- <dd>
- RSA cypher implemented in _javascript_ by Tom Wu. Tests integer math and arrays.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="coffeescript-wtb">coffeescript-wtb</dt>
- <dd>
- <a href="" is a programming language that attempts to expose the
- good parts of _javascript_ in a simple way.
- This benchmark tests the CoffeeScript compiler on test programs.
- This benchmark stresses string manipulation and regular _expression_ performance.
- A similar version of this benchmark was previously published in the Web Tooling Benchmark.
- Source code: <a href=""
- </dd>
-
- <dt id="chai-wtb">chai-wtb</dt>
- <dd>
- <a href="" is a <a href="" / TDD</a> assertion library for
- node.js and the browser. It is commonly used to write unit and integration tests.
- A similar version of this benchmark was previously published in the Web Tooling Benchmark.
- Source code: <a href=""
- </dd>
-
- <dt id="cdjs">cdjs</dt>
- <dd>
- _javascript_ implementation of the <a href="" collision detection
- benchmark</a>. Measures the performance of over 200 collision detection runs.
- Source code: <a href=""
- </dd>
-
- <dt id="box2d">box2d</dt>
- <dd>
- The Box2D physics engine <a href="" to _javascript_</a>. Tests floating
- point math and data structures.
- A similar version of this benchmark was previously published in Octane version 2.
- Source code: <a href=""
- </dd>
-
- <dt id="bomb-workers">bomb-workers</dt>
- <dd>
- Tests running various subtests of the SunSpider benchmark in parallel using Web Workers.
- Stresses the browser's ability to run _javascript_ code in parallel.
- Source code: <a href=""
- </dd>
-
- <dt id="Basic">Basic</dt>
- <dd>
- Basic is an ES2015 implementation of the <a href="" BASIC standard</a>.
- Basic stresses performance of generator functions, classes, Map, and WeakMap.
- The benchmark runs a handful of simple programs, the most complex of which finds prime numbers.
- This benchmark was previously published in ARES-6.
- Source code: <a href=""
- </dd>
-
- <dt id="base64-SP">base64-SP</dt>
- <dd>
- Base64 encoder/decoder written in _javascript_, originally from the Mozilla XML-RPC client component.
- Tests string manipulation.
- A similar version of this benchmark was previously published in SunSpider.
- Source code: <a href=""
- </dd>
-
- <dt id="babylon-wtb">babylon-wtb</dt>
- <dd>
- <a href="" is the frontend for the Babel transpiler.
- It is a _javascript_ parser written in _javascript_. It computes the Abstract Syntax Tree of the input _javascript_ program.
- This benchmark runs Babylon on test _javascript_ programs.
- This benchmark stresses string manipulation and regular _expression_ performance.
- A similar version of this benchmark was previously published in the Web Tooling Benchmark.
- Source code: <a href=""
- </dd>
-
- <dt id="Babylon">Babylon</dt>
- <dd>
- <a href="" is an implementation of a parser for the _javascript_ language.
- Babylon is the parser used in the <a href="" _javascript_ transpiler. The benchmark runs the
- Babylon parser on four different _javascript_ sources. Babylon makes heavy use of classes, does non trivial string processing,
- and creates non-trivial object graphs.
- This benchmark was previously published in ARES-6.
- Source code: <a href=""
- </dd>
-
- <dt id="async-fs">async-fs</dt>
- <dd>
- This is an implementation of a mock file system that stresses the performance of DataView, Promises, and async
- iteration. The benchmark simulates adding and removing files, and swapping the byte order of existing files.
- Source code: <a href=""
- </dd>
-
- <dt id="Air">Air</dt>
- <dd>
- Air is an ES2015 port of the <a href="" B3 JIT</a>'s <a href="" phase</a>.
- This code is a heavy user of Map, Set, classes, spread, and for-of. The benchmark runs allocateStack on hot function
- bodies from other popular _javascript_ benchmarks. This benchmark was previously published in ARES-6.
- Source code: <a href=""
- </dd>
-
- <dt id="ai-astar">ai-astar</dt>
- <dd>
- This benchmark runs a _javascript_ implementation of the <a href="" search algorithm
- written by <a href="" Grinstead</a>.
- This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
- Source code: <a href=""
- </dd>
-
- <dt id="acorn-wtb">acorn-wtb</dt>
- <dd>
- <a href="" is a _javascript_ parser written in _javascript_.
- This benchmark runs Acorn on test _javascript_ programs.
- This benchmark stresses string manipulation and regular _expression_ performance.
- A similar version of this benchmark was previously published in the Web Tooling Benchmark.
- Source code: <a href=""
- </dd>
-
- <dt id="3d-raytrace-SP">3d-raytrace-SP</dt>
- <dd>
- Simple raytracer written by <a href="" Hunt</a>.
- Tests arrays and floating-point math in relatively short-running code.
- A similar version of this benchmark was previously published in SunSpider.
- Source code: <a href=""
- </dd>
-
- <dt id="3d-cube-SP">3d-cube-SP</dt>
- <dd>
- 3D cube rotation benchmark by Simon Speich. The original can be found
- on <a href=""
- web page</a>. Tests arrays and floating-point math in relatively
- short-running code.
- A similar version of this benchmark was previously published in SunSpider.
- Source code: <a href=""
- </dd>
-
- </dl>
-
- <p><a href="" class="button">← Return to Tests</a></p>
- </article>
-
-</main>
-</body>
-</html>
\ No newline at end of file
Copied: trunk/Websites/browserbench.org/JetStream2.0/in-depth.html (from rev 243455, trunk/PerformanceTests/JetStream2/in-depth.html) (0 => 243458)
--- trunk/Websites/browserbench.org/JetStream2.0/in-depth.html (rev 0)
+++ trunk/Websites/browserbench.org/JetStream2.0/in-depth.html 2019-03-25 21:14:50 UTC (rev 243458)
@@ -0,0 +1,658 @@
+<!--
+ Copyright (C) 2019 Apple Inc. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8" />
+
+ <title>JetStream 2 In-Depth Analysis</title>
+
+ <link rel="stylesheet" href=""
+
+</head>
+<body>
+<h1 class="logo">
+ <div id="jetstreams">
+ <a href="" class="logo-image">JetStream 2</a>
+ </div>
+</h1>
+<main>
+ <article>
+ <h2>In-Depth Analysis</h2>
+
+ <p>
+ JetStream 2 combines together a variety of _javascript_ and Web Assembly benchmarks, covering a variety of
+ advanced workloads and programming techniques, and reports a single score that
+ balances them using a geometric mean.
+ </p>
+
+ <p>
+ Each benchmark measures a distinct workload, and no single optimization
+ technique is sufficient to speed up all benchmarks. Some benchmarks demonstrate tradeoffs, and
+ aggressive or specialized optimizations for one benchmark might make another benchmark slower.
+ JetStream 2 rewards browsers that start up quickly, execute code quickly, and continue running smoothly.
+ </p>
+
+ <p>
+ Each benchmark in JetStream 2 computes its own individual score. JetStream 2 weighs each
+ benchmark equally, taking the geometric mean over each individual benchmark's score to compute
+ the overall JetStream 2 score.
+ </p>
+
+ <p>
+ It's not enough to just measure the total running time of a workload.
+ Browsers may perform differently for the same _javascript_ workload depending on how many times it
+ has run. For example, garbage collection runs periodically, making some iterations take longer than
+ others. Code that runs repeatedly gets optimized by the browser, so the first iteration
+ of any workload is usually more expensive than the rest.
+ </p>
+
+ <p>
+ For most of the _javascript_ benchmarks in JetStream 2, individual scores
+ equally weigh startup performance, worst case performance, and average case
+ performance. These three metrics are crucial to running performant _javascript_
+ in the browser. Fast startup times lead browsers to loading pages more quickly. Good
+ worst case performance ensures web applications can run without hiccups. Fast average
+ case performance makes it so that the most advanced web applications can run at all.
+ </p>
+
+ <p>
+ For JetStream 2's Web Assembly benchmarks, individual scores equally weigh startup time and
+ total execution time. An important component of JetStream 1 were the asm.js subset of benchmarks. With the release
+ of Web Assembly, the importance of asm.js has lessened since many users of asm.js are
+ now using Web Assembly. JetStream 2 has converted many of the asm.js benchmarks from
+ JetStream 1 into Web Assembly.
+ </p>
+
+ <p>
+ All but one of JetStream'2 _javascript_ benchmarks run for N iterations, where
+ N is usually 120. JetStream 2 reports the startup score as the time it takes to run the first iteration.
+ The worst case score is the average of the worst M iterations, excluding the first iteration.
+ M is always less than N, and is usually 4. The average case score is the average
+ of all but the first iteration. These three scores are weighed equally using the geometric
+ mean.
+ </p>
+
+ <p>
+ JetStream 2 also includes a _javascript_ benchmark named WSL. WSL is an implementation of a
+ GPU shading language written in _javascript_. WSL does not use the above mechanism for scoring
+ because it has a long running time. Instead, the WSL benchmark computes its score as the
+ geometric mean over two metrics: the time it takes to compile the WSL standard library, and the time
+ it takes to run through the WSL specification test suite.
+ </p>
+
+ <p>
+ JetStream 2 includes parts of these benchmark suites that came before it: <a href=""
+ <a href="" 2</a>, <a href="" 1</a>,
+ <a href="" and <a href="" Tooling Benchmark</a>.
+ JetStream 2 also includes new benchmarks inspired by <a href=""
+ JetStream 2 also includes a new set of benchmarks that measure the performance of Web Assembly, Web Workers,
+ Promises, async iteration, unicode regular expressions, and _javascript_ parsing.
+ </p>
+
+ <p>
+ Note that scores from JetStream 2 are not comparable to scores to other versions
+ of any JetStream benchmark.
+ </p>
+
+ <h3>
+ JetStream 2 has 64 subtests:
+ </h3>
+
+ <dl>
+
+ <dt id="WSL">WSL</dt>
+ <dd>
+ WSL is an implementation of a GPU shading language written in _javascript_.
+ WSL measures the time it takes to compile the WSL standard library and the time
+ it takes to run through the WSL specification test suite.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="UniPoker">UniPoker</dt>
+ <dd>
+ UniPoker is a 5 card stud poker simulation using the Unicode playing card code points, U+1F0A1..U+1F0DE,
+ as the card representation in code. Scoring of hands is done with three regular expressions, one to check
+ for a flush, one to check for straights, and one to check for pairs, three of a kind, and four of a kind.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="uglify-js-wtb">uglify-js-wtb</dt>
+ <dd>
+ <a href="" is a _javascript_ parser, minifier, compressor, and beautifier toolkit. It is commonly
+ used to minimize _javascript_ bundles.
+ This benchmark runs UglifyJS on test _javascript_ programs.
+ This benchmark stresses string manipulation and regular _expression_ performance.
+ A similar version of this benchmark was previously published in the Web Tooling Benchmark.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="typescript">typescript</dt>
+ <dd>
+ Tests how quickly Microsoft's <a href="" compiler can
+ compile itself. More than anything else, this tests how quickly a _javascript_ runtime can optimize
+ a large pile of code.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="tsf-wasm">tsf-wasm</dt>
+ <dd>
+ Runs Filip Pizlo's — of the WebKit team — implementation of a <a href="" Typed Stream Format </a>
+ in Web Assembly. The original code is compiled from C to Web Assembly using <a href=""
+ Source code: <a href=""
+ </dd>
+
+ <dt id="tagcloud-SP">tagcloud-SP</dt>
+ <dd>
+ Parses JSON and generates markup for a <a href=""
+ cloud</a> view of the data. Written by Maciej Stachowiak of the WebKit team. Exercises string
+ parsing and manipulation. A similar version of this benchmark was originally published in SunSpider.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="string-unpack-code-SP">string-unpack-code-SP</dt>
+ <dd>
+ This benchmark unpacks various minified _javascript_ libraries. It stresses the speed of various string manipulation
+ operations.
+ A similar version of this benchmark was previously published in SunSpider.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="stanford-crypto-sha256">stanford-crypto-sha256</dt>
+ <dd>
+ Measures the performance of the <a href="" hashing algorithm as implemented by the <a href="" _javascript_ Crypto Library</a>. This benchmark stresses numeric analysis and array access.
+ This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="stanford-crypto-pbkdf2">stanford-crypto-pbkdf2</dt>
+ <dd>
+ Measures the performance of the <a href="" hashing algorithm as implemented by the <a href="" _javascript_ Crypto Library</a>. This benchmark stresses numeric analysis and array access.
+ This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="stanford-crypto-aes">stanford-crypto-aes</dt>
+ <dd>
+ Measures the performance of the <a href="" hashing algorithm as implemented by the <a href="" _javascript_ Crypto Library</a>. This benchmark stresses numeric analysis and array access.
+ This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="splay">splay</dt>
+ <dd>
+ Tests the manipulation of <a href="" trees</a>
+ represented using plain _javascript_ objects. This benchmark stresses the performance of the garbage collector.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="segmentation">segmentation</dt>
+ <dd>
+ Uses Web Workers to parallelize the computation of a <a href=""
+ time series segmentation</a> algorithm over a sample data set. This code is adapted from an algorithm used in the <a href=""
+ WebKit performance dashboard.</a>
+ Source code: <a href=""
+ </dd>
+
+ <dt id="richards">richards</dt>
+ <dd>
+ Martin Richard's <a href="" language
+ benchmark</a> ported to _javascript_. Tests object property access performance.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="richards-wasm">richards-wasm</dt>
+ <dd>
+ Martin Richard's <a href="" language
+ benchmark</a> compiled to a hybrid of Web Assembly and _javascript_. It stresses how quickly
+ _javascript_ can call into Web Assembly code.
+ Source code: <a href="" <a href=""
+ </dd>
+
+ <dt id="regexp">regexp</dt>
+ <dd>
+ Collection of regular expressions found by the V8 team in 2010, curated into a benchmark.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="regex-dna-SP">regex-dna-SP</dt>
+ <dd>
+ Regular-_expression_-based solution to DNA manipulation from
+ <a href="" Great Computer Language Shootout</a>,
+ contributed by Jesse Millikan.
+ A similar version of this benchmark was previously published in SunSpider.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="raytrace">raytrace</dt>
+ <dd>
+ <a href="" tracer</a> written in _javascript_ using prototype.js. Tests object construction performance
+ and floating point math.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="quicksort-wasm">quicksort-wasm</dt>
+ <dd>
+ Quicksort benchmark, compiled to Web Assembly with <a href=""
+ The original C version of this benchmark was previously published in the LLVM test suite.
+ Source code: <a href="" <a href=""
+ </dd>
+
+ <dt id="prepack-wtb">prepack-wtb</dt>
+ <dd>
+ <a href="" is a tool that optimizes _javascript_ source code by performing computations at compile
+ time instead of run time where possible.
+ This benchmark runs Prepack on test _javascript_ programs.
+ This benchmark stresses string manipulation and regular _expression_ performance.
+ A similar version of this benchmark was previously published in the Web Tooling Benchmark.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="pdfjs">pdfjs</dt>
+ <dd>
+ Mozilla's <a href="" reader written in _javascript_</a>.
+ This benchmark emphasizes array manipulation and bit operations.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="OfflineAssembler">OfflineAssembler</dt>
+ <dd>
+ Offline Assembler is the lexer, parser, and AST layer of the offline assembler for <a href=""
+ It has been ported to _javascript_ from the original Ruby implementation. This test stresses regular _expression_
+ performance.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="octane-zlib">octane-zlib</dt>
+ <dd>
+ A benchmark based on compiling <a href="" to _javascript_ using
+ <a href="" Based on the
+ <a href="" emscripten test</a>
+ but modified to restrict code caching opportunities.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="octane-code-load">octane-code-load</dt>
+ <dd>
+ Test of code load speed of the jQuery and Closure libraries. Because this test allows
+ caching, this is representative of revisiting the same website.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="navier-stokes">navier-stokes</dt>
+ <dd>
+ Fluid simulation written by <a href="" Hunt</a>. Emphasizes floating point array performance.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="n-body-SP">n-body-SP</dt>
+ <dd>
+ Classic solar system simulation benchmark from
+ <a href="" Great Computer Language Shootout</a>,
+ contributed by Isaac Guy. Tests math and object access performance.
+ A similar version of this benchmark was previously published in SunSpider.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="multi-inspector-code-load">multi-inspector-code-load</dt>
+ <dd>
+ Measures the repeated parsing of a modern _javascript_ code base: WebKit's Web Inspector.
+ Because this test allows caching, this is representative of revisiting the same website.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="ML">ML</dt>
+ <dd>
+ ML is an implementation of a <a href="" feedforward neural network.</a>
+ The benchmark trains several networks using different <a href="" functions</a>
+ and several sample data sets. ML makes heavy use of classes. It relies on the ml-matrix library and does non-trivial matrix math.
+ This benchmark was previously published in ARES-6.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="mandreel">mandreel</dt>
+ <dd>
+ Tests the <a href="" physics engine.
+ The physics engine is compiled to _javascript_ with <a href=""
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="lebab-wtb">lebab-wtb</dt>
+ <dd>
+ <a href="" transpiles ES5 code into ES6/ES7.
+ This benchmark runs Lebab on test _javascript_ programs.
+ This benchmark stresses string manipulation and regular _expression_ performance.
+ A similar version of this benchmark was previously published in the Web Tooling Benchmark.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="json-stringify-inspector">json-stringify-inspector</dt>
+ <dd>
+ Measures JSON.stringify performance on a set of objects that WebKit's Web Inspector
+ stringifies when communicating between the UI and web pages.
+ This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="json-parse-inspector">json-parse-inspector</dt>
+ <dd>
+ Measures JSON.parse performance on a set of objects that WebKit's Web Inspector
+ parses when communicating between the UI and web pages.
+ This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="jshint-wtb">jshint-wtb</dt>
+ <dd>
+ <a href="" is a static analysis tool that warns about errors
+ and potential problems in _javascript_ programs.
+ This benchmark runs JSHint on test _javascript_ programs.
+ This benchmark stresses string manipulation and regular _expression_ performance.
+ A similar version of this benchmark was previously published in the Web Tooling Benchmark.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="HashSet-wasm">HashSet-wasm</dt>
+ <dd>
+ A Web Assembly benchmark replaying a set of hash table operations performed in WebKit when loading
+ a web page. This benchmark was compiled from C++ to Web Assembly using <a href=""
+ Source code: <a href="" <a href=""
+ </dd>
+
+ <dt id="hash-map">hash-map</dt>
+ <dd>
+ Apache Harmony java.util.HashMap implementation ported to _javascript_ and benchmarked by
+ doing hash table insertions, queries, and then iterating the associated entrySet. Tests
+ object-oriented _javascript_ idioms and object construction. A similar _javascript_ version
+ of this benchmark was originally published as part of the WebKit test suite.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="gcc-loops-wasm">gcc-loops-wasm</dt>
+ <dd>
+ Example loops used to tune the GCC and LLVM vectorizers, compiled to Web Assembly with
+ <a href="" The original C++ version of this benchmark was previously published in the LLVM test suite.
+ Source code: <a href="" <a href=""
+ </dd>
+
+ <dt id="gbemu">gbemu</dt>
+ <dd>
+ Gameboy emulator written in _javascript_. Tests typed array and
+ property access performance.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href="" <a href=""
+ </dd>
+
+ <dt id="gaussian-blur">gaussian-blur</dt>
+ <dd>
+ Tests the performance of a _javascript_ implementation of <a href=""
+ blur</a> on a test image. Tests numeric analysis speed and uses typed arrays.
+ This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="float-mm.c">float-mm.c</dt>
+ <dd>
+ Floating point matrix multiply benchmark, compiled to _javascript_ with <a href=""
+ The original C version of this benchmark was previously published in the LLVM test suite.
+ Source code: <a href="" <a href=""
+ </dd>
+
+ <dt id="FlightPlanner">FlightPlanner</dt>
+ <dd>
+ Flight Planner is a benchmark taken from a flight management web application.
+ Flight Planner parses aircraft flight plans and computes distance, courses, and elapsed times for legs of flight plans.
+ It uses FAA data for airports, navigation aids, and airways. The flight management app was originally written to help
+ compete in a flying proficiency event. It stresses regular _expression_ performance.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="first-inspector-code-load">first-inspector-code-load</dt>
+ <dd>
+ Measures the first-time parsing of a modern _javascript_ code base: WebKit's Web Inspector.
+ This models the parsing time of visiting a web site for the first time.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="espree-wtb">espree-wtb</dt>
+ <dd>
+ <a href="" is a _javascript_ parser written in _javascript_.
+ This benchmark runs Espree on test _javascript_ programs.
+ This benchmark stresses string manipulation and regular _expression_ performance.
+ A similar version of this benchmark was previously published in the Web Tooling Benchmark.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="earley-boyer">earley-boyer</dt>
+ <dd>
+ Tests two classic Scheme benchmarks translated to _javascript_ using scheme2js. The first
+ benchmark is Earley, is a chart parser algorithm created by Jay Earley. The second is
+ Boyer, a logic programming benchmark by Bob Boyer. Measures variadic functions and object
+ construction.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="delta-blue">delta-blue</dt>
+ <dd>
+ The classic DeltaBlue benchmark derived from a Smalltalk implementation by Maloney and
+ Wolczko. Tests devirtualization of _javascript_ code that uses an idiomatic class hierarchy
+ construction.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="date-format-xparb-SP">date-format-xparb-SP</dt>
+ <dd>
+ Sophisticated date formatting and parsing library test, based on code by Barin Schwartz.
+ A similar version of this benchmark was previously published in SunSpider.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="date-format-tofte-SP">date-format-tofte-SP</dt>
+ <dd>
+ Date and time formatting test, based on code by Svend Tofte. Involves an interesting use
+ of <code>eval</code> and also covers string manipulation and _javascript_ library functions.
+ A similar version of this benchmark was previously published in SunSpider.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="crypto-sha1-SP">crypto-sha1-SP</dt>
+ <dd>
+ <a href="" implementation in _javascript_ by
+ Paul Johnston and others. Tests interesting integer math idioms.
+ A similar version of this benchmark was previously published in SunSpider.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="crypto-md5-SP">crypto-md5-SP</dt>
+ <dd>
+ <a href="" implementation in _javascript_ by
+ Paul Johnston and others. Tests interesting integer math idioms.
+ A similar version of this benchmark was previously published in SunSpider.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="crypto-aes-SP">crypto-aes-SP</dt>
+ <dd>
+ <a href="" AES</a> implementation
+ in _javascript_ by Chris Veness. A newer version can be
+ found <a href="" Tests integer math.
+ A similar version of this benchmark was previously published in SunSpider.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="crypto">crypto</dt>
+ <dd>
+ RSA cypher implemented in _javascript_ by Tom Wu. Tests integer math and arrays.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="coffeescript-wtb">coffeescript-wtb</dt>
+ <dd>
+ <a href="" is a programming language that attempts to expose the
+ good parts of _javascript_ in a simple way.
+ This benchmark tests the CoffeeScript compiler on test programs.
+ This benchmark stresses string manipulation and regular _expression_ performance.
+ A similar version of this benchmark was previously published in the Web Tooling Benchmark.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="chai-wtb">chai-wtb</dt>
+ <dd>
+ <a href="" is a <a href="" / TDD</a> assertion library for
+ node.js and the browser. It is commonly used to write unit and integration tests.
+ A similar version of this benchmark was previously published in the Web Tooling Benchmark.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="cdjs">cdjs</dt>
+ <dd>
+ _javascript_ implementation of the <a href="" collision detection
+ benchmark</a>. Measures the performance of over 200 collision detection runs.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="box2d">box2d</dt>
+ <dd>
+ The Box2D physics engine <a href="" to _javascript_</a>. Tests floating
+ point math and data structures.
+ A similar version of this benchmark was previously published in Octane version 2.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="bomb-workers">bomb-workers</dt>
+ <dd>
+ Tests running various subtests of the SunSpider benchmark in parallel using Web Workers.
+ Stresses the browser's ability to run _javascript_ code in parallel.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="Basic">Basic</dt>
+ <dd>
+ Basic is an ES2015 implementation of the <a href="" BASIC standard</a>.
+ Basic stresses performance of generator functions, classes, Map, and WeakMap.
+ The benchmark runs a handful of simple programs, the most complex of which finds prime numbers.
+ This benchmark was previously published in ARES-6.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="base64-SP">base64-SP</dt>
+ <dd>
+ Base64 encoder/decoder written in _javascript_, originally from the Mozilla XML-RPC client component.
+ Tests string manipulation.
+ A similar version of this benchmark was previously published in SunSpider.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="babylon-wtb">babylon-wtb</dt>
+ <dd>
+ <a href="" is the frontend for the Babel transpiler.
+ It is a _javascript_ parser written in _javascript_. It computes the Abstract Syntax Tree of the input _javascript_ program.
+ This benchmark runs Babylon on test _javascript_ programs.
+ This benchmark stresses string manipulation and regular _expression_ performance.
+ A similar version of this benchmark was previously published in the Web Tooling Benchmark.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="Babylon">Babylon</dt>
+ <dd>
+ <a href="" is an implementation of a parser for the _javascript_ language.
+ Babylon is the parser used in the <a href="" _javascript_ transpiler. The benchmark runs the
+ Babylon parser on four different _javascript_ sources. Babylon makes heavy use of classes, does non trivial string processing,
+ and creates non-trivial object graphs.
+ This benchmark was previously published in ARES-6.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="async-fs">async-fs</dt>
+ <dd>
+ This is an implementation of a mock file system that stresses the performance of DataView, Promises, and async
+ iteration. The benchmark simulates adding and removing files, and swapping the byte order of existing files.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="Air">Air</dt>
+ <dd>
+ Air is an ES2015 port of the <a href="" B3 JIT</a>'s <a href="" phase</a>.
+ This code is a heavy user of Map, Set, classes, spread, and for-of. The benchmark runs allocateStack on hot function
+ bodies from other popular _javascript_ benchmarks. This benchmark was previously published in ARES-6.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="ai-astar">ai-astar</dt>
+ <dd>
+ This benchmark runs a _javascript_ implementation of the <a href="" search algorithm
+ written by <a href="" Grinstead</a>.
+ This benchmark was inspired by a similar benchmark in the Kraken benchmark suite.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="acorn-wtb">acorn-wtb</dt>
+ <dd>
+ <a href="" is a _javascript_ parser written in _javascript_.
+ This benchmark runs Acorn on test _javascript_ programs.
+ This benchmark stresses string manipulation and regular _expression_ performance.
+ A similar version of this benchmark was previously published in the Web Tooling Benchmark.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="3d-raytrace-SP">3d-raytrace-SP</dt>
+ <dd>
+ Simple raytracer written by <a href="" Hunt</a>.
+ Tests arrays and floating-point math in relatively short-running code.
+ A similar version of this benchmark was previously published in SunSpider.
+ Source code: <a href=""
+ </dd>
+
+ <dt id="3d-cube-SP">3d-cube-SP</dt>
+ <dd>
+ 3D cube rotation benchmark by Simon Speich. The original can be found
+ on <a href=""
+ web page</a>. Tests arrays and floating-point math in relatively
+ short-running code.
+ A similar version of this benchmark was previously published in SunSpider.
+ Source code: <a href=""
+ </dd>
+
+ </dl>
+
+ <p><a href="" class="button">← Return to Tests</a></p>
+ </article>
+
+</main>
+</body>
+</html>
Deleted: trunk/Websites/browserbench.org/JetStream2.0/index.html (243446 => 243458)
--- trunk/PerformanceTests/JetStream2/index.html 2019-03-25 19:11:31 UTC (rev 243446)
+++ trunk/Websites/browserbench.org/JetStream2.0/index.html 2019-03-25 21:14:50 UTC (rev 243458)
@@ -1,73 +0,0 @@
-<!--
- Copyright (C) 2019 Apple Inc. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- THE POSSIBILITY OF SUCH DAMAGE.
--->
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8" />
-
- <title>JetStream 2</title>
-
- <link rel="stylesheet" href=""
- <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes, viewport-fit=cover">
-
- <script>
- const isInBrowser = true;
- var allIsGood = true;
- window._onerror_ = function() { allIsGood = false; }
-
- async function initialize() {
- if (allIsGood)
- await JetStream.initialize();
- else {
- let statusElement = document.getElementById("status");
- statusElement.classList.remove('loading');
- statusElement.classList.add('error');
- statusElement.innerHTML = "<h2>ERROR</h2><p>Errors were encountered during page load. Refusing to run a partial benchmark suite.</p>";
- }
- }
- </script>
-
- <script src=""
-
-</head>
-<body _onload_="initialize()">
-<h1 class="logo">
- <div id="jetstreams">
- <a href="" class="logo-image">JetStream 2</a>
- </div>
-</h1>
-
-<main>
- <p class="summary">JetStream 2 is a _javascript_ benchmark suite focused on the most advanced web applications. For more information, read the <a href="" analysis</a>. Higher scores are better.</p>
- <p class="summary" id="mode-description"></p>
-
- <div id="result-summary"></div>
- <div id="status" class="loading">Loading Benchmark...</div>
-
- <div id="results"></div>
-</main>
-<iframe id="magic"></iframe>
-</body>
-</html>
\ No newline at end of file
Copied: trunk/Websites/browserbench.org/JetStream2.0/index.html (from rev 243455, trunk/PerformanceTests/JetStream2/index.html) (0 => 243458)
--- trunk/Websites/browserbench.org/JetStream2.0/index.html (rev 0)
+++ trunk/Websites/browserbench.org/JetStream2.0/index.html 2019-03-25 21:14:50 UTC (rev 243458)
@@ -0,0 +1,73 @@
+<!--
+ Copyright (C) 2019 Apple Inc. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8" />
+
+ <title>JetStream 2</title>
+
+ <link rel="stylesheet" href=""
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes, viewport-fit=cover">
+
+ <script>
+ const isInBrowser = true;
+ var allIsGood = true;
+ window._onerror_ = function() { allIsGood = false; }
+
+ async function initialize() {
+ if (allIsGood)
+ await JetStream.initialize();
+ else {
+ let statusElement = document.getElementById("status");
+ statusElement.classList.remove('loading');
+ statusElement.classList.add('error');
+ statusElement.innerHTML = "<h2>ERROR</h2><p>Errors were encountered during page load. Refusing to run a partial benchmark suite.</p>";
+ }
+ }
+ </script>
+
+ <script src=""
+
+</head>
+<body _onload_="initialize()">
+<h1 class="logo">
+ <div id="jetstreams">
+ <a href="" class="logo-image">JetStream 2</a>
+ </div>
+</h1>
+
+<main>
+ <p class="summary">JetStream 2 is a _javascript_ and WebAssembly benchmark suite focused on the most advanced web applications. It rewards browsers that start up quickly, execute code quickly, and run smoothly. For more information, read the <a href="" analysis</a>. Bigger scores are better.</p>
+ <p class="summary" id="mode-description"></p>
+
+ <div id="result-summary"></div>
+ <div id="status" class="loading">Loading Benchmark...</div>
+
+ <div id="results"></div>
+</main>
+<iframe id="magic"></iframe>
+</body>
+</html>