Home | History | Annotate | Download | only in benchmarks
      1 V8 Benchmark Suite
      2 ==================
      3 
      4 This is the V8 benchmark suite: A collection of pure JavaScript
      5 benchmarks that we have used to tune V8. The licenses for the
      6 individual benchmarks are included in the JavaScript files.
      7 
      8 In addition to the benchmarks, the suite consists of the benchmark
      9 framework (base.js), which must be loaded before any of the individual
     10 benchmark files, and two benchmark runners: An HTML version (run.html)
     11 and a standalone JavaScript version (run.js).
     12 
     13 
     14 Changes From Version 1 To Version 2
     15 ===================================
     16 
     17 For version 2 the crypto benchmark was fixed.  Previously, the
     18 decryption stage was given plaintext as input, which resulted in an
     19 error.  Now, the decryption stage is given the output of the
     20 encryption stage as input.  The result is checked against the original
     21 plaintext.  For this to give the correct results the crypto objects
     22 are reset for each iteration of the benchmark.  In addition, the size
     23 of the plain text has been increased a little and the use of
     24 Math.random() and new Date() to build an RNG pool has been removed.
     25 
     26 Other benchmarks were fixed to do elementary verification of the
     27 results of their calculations.  This is to avoid accidentally
     28 obtaining scores that are the result of an incorrect JavaScript engine
     29 optimization.
     30 
     31 
     32 Changes From Version 2 To Version 3
     33 ===================================
     34 
     35 Version 3 adds a new benchmark, RegExp.  The RegExp benchmark is
     36 generated by loading 50 of the most popular pages on the web and
     37 logging all regexp operations performed.  Each operation is given a
     38 weight that is calculated from an estimate of the popularity of the
     39 pages where it occurs and the number of times it is executed while
     40 loading each page.  Finally the literal letters in the data are
     41 encoded using ROT13 in a way that does not affect how the regexps
     42 match their input.
     43 
     44 
     45 Changes from Version 3 to Version 4
     46 ===================================
     47 
     48 The Splay benchmark is a newcomer in version 4.  It manipulates a
     49 splay tree by adding and removing data nodes, thus exercising the
     50 memory management subsystem of the JavaScript engine.
     51 
     52 Furthermore, all the unused parts of the Prototype library were
     53 removed from the RayTrace benchmark. This does not affect the running
     54 of the benchmark.
     55 
     56 
     57 Changes from Version 4 to Version 5
     58 ===================================
     59 
     60 Removed duplicate line in random seed code, and changed the name of
     61 the Object.prototype.inherits function in the DeltaBlue benchmark to
     62 inheritsFrom to avoid name clashes when running in Chromium with
     63 extensions enabled.
     64 
     65 
     66 Changes from Version 5 to Version 6
     67 ===================================
     68 
     69 Removed dead code from the RayTrace benchmark and fixed a couple of
     70 typos in the DeltaBlue implementation. Changed the Splay benchmark to
     71 avoid converting the same numeric key to a string over and over again
     72 and to avoid inserting and removing the same element repeatedly thus
     73 increasing pressure on the memory subsystem. Changed the RegExp
     74 benchmark to exercise the regular expression engine on different
     75 input strings.
     76 
     77 Furthermore, the benchmark runner was changed to run the benchmarks
     78 for at least a few times to stabilize the reported numbers on slower
     79 machines.
     80 
     81 
     82 Changes from Version 6 to Version 7
     83 ===================================
     84 
     85 Added the Navier-Stokes benchmark, a 2D differential equation solver
     86 that stresses arithmetic computations on double arrays.
     87