File: jetstream2.py

package info (click to toggle)
chromium 138.0.7204.157-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,864 kB
  • sloc: cpp: 34,936,859; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,967; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (112 lines) | stat: -rw-r--r-- 3,615 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# Copyright 2019 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Runs Apple's JetStream 2 benchmark.

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.

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.

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.

"""

from telemetry import benchmark

import page_sets
from benchmarks import press


class _JetStream2Base(press._PressBenchmark):  # pylint:disable=protected-access
  """JetStream2, a combination of JavaScript and Web Assembly benchmarks.

  Run all the JetStream 2 benchmarks by default.
  """
  @classmethod
  def AddBenchmarkCommandLineArgs(cls, parser):
    parser.add_argument('--test-list',
                        help='Only run specific tests, separated by commas.')


@benchmark.Info(
    emails=['vahl@chromium.org', 'cbruni@chromium.org'],
    component='Blink>JavaScript',
    documentation_url='https://browserbench.org/JetStream2.0/in-depth.html')
class JetStream20(_JetStream2Base):
  """JetStream 2.0"""
  @classmethod
  def Name(cls):
    return 'UNSCHEDULED_jetstream20'

  def CreateStorySet(self, options):
    return page_sets.JetStream20StorySet(options.test_list)


@benchmark.Info(
    emails=['vahl@chromium.org', 'cbruni@chromium.org'],
    component='Blink>JavaScript',
    documentation_url='https://browserbench.org/JetStream2.1/in-depth.html')
class JetStream21(_JetStream2Base):
  """JetStream 2.1"""
  @classmethod
  def Name(cls):
    return 'UNSCHEDULED_jetstream21'

  def CreateStorySet(self, options):
    return page_sets.JetStream21StorySet(options.test_list)


@benchmark.Info(
    emails=['vahl@chromium.org', 'cbruni@chromium.org'],
    component='Blink>JavaScript',
    documentation_url='https://browserbench.org/JetStream2.2/in-depth.html')
class JetStream22(_JetStream2Base):
  """JetStream 2.2"""

  @classmethod
  def Name(cls):
    return 'UNSCHEDULED_jetstream22'

  def CreateStorySet(self, options):
    return page_sets.JetStream22StorySet(options.test_list)


@benchmark.Info(
    emails=['vahl@chromium.org', 'cbruni@chromium.org'],
    component='Blink>JavaScript',
    documentation_url='https://browserbench.org/JetStream2.0/in-depth.html')
class JetStream2(_JetStream2Base):
  """Latest JetStream 2 """
  @classmethod
  def Name(cls):
    return 'jetstream2'

  def CreateStorySet(self, options):
    return page_sets.JetStream2StorySet(options.test_list)


@benchmark.Info(
    emails=['omerkatz@chromium.org'],
    component='Blink>JavaScript>GarbageCollection',
    documentation_url='https://browserbench.org/JetStream2.0/in-depth.html')
class JetStream2MinorMS(JetStream2):
  """Latest JetStream2 with the MinorMS flag.

  Shows the performance with MinorMS young generation GC in V8.
  """
  @classmethod
  def Name(cls):
    return 'jetstream2-minorms'

  def SetExtraBrowserOptions(self, options):
    options.AppendExtraBrowserArgs('--js-flags=--minor-ms')