# This file contains a list of Mojo benchmarks. For description of the file
# format, see `mojo_benchmark --help`.

benchmarks = [
  {
    'name': 'dart init',
    'app': 'https://core.mojoapps.io/dart_startup.mojo',
    'duration': 10,
    'measurements': [
      {
        'name': 'initialize',
        'spec': 'time_until/Dart/initialized'
      },
      {
        'name': 'accept connection',
        'spec': 'time_between/Dart/initialized/Dart/connected',
      }
    ]
  },
  {
    'name': 'dart init with handler',
    'app': 'https://core.mojoapps.io/dart_handler_running.mojo',
    'duration': 10,
    'measurements': [
      {
        'name': 'initialize',
        'spec': 'time_between/Dart/connecting/Dart/initialized',
      }
    ]
  },
  {
    'name': 'dart init no observatory',
    'app': 'https://core.mojoapps.io/dart_startup.mojo',
    'duration': 10,
    'measurements': [
      {
        'name': 'initialize',
        'spec': 'time_until/Dart/initialized'
      },
      {
        'name': 'accept connection',
        'spec': 'time_between/Dart/initialized/Dart/connected',
      }
    ],
    'shell-args': [
      '--args-for=mojo:dart_content_handler --disable-observatory',
    ]
  },
  {
    'name': 'cpp init',
    'app': 'https://core.mojoapps.io/trace_me.mojo',
    'duration': 10,
    'measurements': [
      {
        'name': 'initialize',
        'spec': 'time_until/trace_me/initialized',
      },
      {
        'name': 'accept connection',
        'spec': 'time_between/trace_me/initialized/trace_me/connected',
      }
    ],
    'shell-args': [
      '--args-for=https://core.mojoapps.io/trace_me.mojo --early-tracing',
    ]
  },
]

