chrobot_extra/protocol/profiler

⚙️ This module was generated from the Chrome DevTools Protocol version 1.3

Profiler Domain

This protocol domain has no description.

📖 View this domain on the DevTools Protocol API Docs

Types

Coverage data for a source range.

pub type CoverageRange {
  CoverageRange(start_offset: Int, end_offset: Int, count: Int)
}

Constructors

  • CoverageRange(start_offset: Int, end_offset: Int, count: Int)

    Arguments

    start_offset

    JavaScript script source offset for the range start.

    end_offset

    JavaScript script source offset for the range end.

    count

    Collected execution count of the source range.

Coverage data for a JavaScript function.

pub type FunctionCoverage {
  FunctionCoverage(
    function_name: String,
    ranges: List(CoverageRange),
    is_block_coverage: Bool,
  )
}

Constructors

  • FunctionCoverage(
      function_name: String,
      ranges: List(CoverageRange),
      is_block_coverage: Bool,
    )

    Arguments

    function_name

    JavaScript function name.

    ranges

    Source ranges inside the function with coverage data.

    is_block_coverage

    Whether coverage data for this function has block granularity.

This type is not part of the protocol spec, it has been generated dynamically to represent the response to the command get_best_effort_coverage

pub type GetBestEffortCoverageResponse {
  GetBestEffortCoverageResponse(result: List(ScriptCoverage))
}

Constructors

  • GetBestEffortCoverageResponse(result: List(ScriptCoverage))

    Arguments

    result

    Coverage data for the current isolate.

Specifies a number of samples attributed to a certain source position.

pub type PositionTickInfo {
  PositionTickInfo(line: Int, ticks: Int)
}

Constructors

  • PositionTickInfo(line: Int, ticks: Int)

    Arguments

    line

    Source line number (1-based).

    ticks

    Number of samples attributed to the source line.

Profile.

pub type Profile {
  Profile(
    nodes: List(ProfileNode),
    start_time: Float,
    end_time: Float,
    samples: option.Option(List(Int)),
    time_deltas: option.Option(List(Int)),
  )
}

Constructors

  • Profile(
      nodes: List(ProfileNode),
      start_time: Float,
      end_time: Float,
      samples: option.Option(List(Int)),
      time_deltas: option.Option(List(Int)),
    )

    Arguments

    nodes

    The list of profile nodes. First item is the root node.

    start_time

    Profiling start timestamp in microseconds.

    end_time

    Profiling end timestamp in microseconds.

    samples

    Ids of samples top nodes.

    time_deltas

    Time intervals between adjacent samples in microseconds. The first delta is relative to the profile startTime.

Profile node. Holds callsite information, execution statistics and child nodes.

pub type ProfileNode {
  ProfileNode(
    id: Int,
    call_frame: runtime.CallFrame,
    hit_count: option.Option(Int),
    children: option.Option(List(Int)),
    deopt_reason: option.Option(String),
    position_ticks: option.Option(List(PositionTickInfo)),
  )
}

Constructors

  • ProfileNode(
      id: Int,
      call_frame: runtime.CallFrame,
      hit_count: option.Option(Int),
      children: option.Option(List(Int)),
      deopt_reason: option.Option(String),
      position_ticks: option.Option(List(PositionTickInfo)),
    )

    Arguments

    id

    Unique id of the node.

    call_frame

    Function location.

    hit_count

    Number of samples where this node was on top of the call stack.

    children

    Child node ids.

    deopt_reason

    The reason of being not optimized. The function may be deoptimized or marked as don’t optimize.

    position_ticks

    An array of source position ticks.

Coverage data for a JavaScript script.

pub type ScriptCoverage {
  ScriptCoverage(
    script_id: runtime.ScriptId,
    url: String,
    functions: List(FunctionCoverage),
  )
}

Constructors

  • ScriptCoverage(
      script_id: runtime.ScriptId,
      url: String,
      functions: List(FunctionCoverage),
    )

    Arguments

    script_id

    JavaScript script id.

    url

    JavaScript script name or url.

    functions

    Functions contained in the script that has coverage data.

This type is not part of the protocol spec, it has been generated dynamically to represent the response to the command start_precise_coverage

pub type StartPreciseCoverageResponse {
  StartPreciseCoverageResponse(timestamp: Float)
}

Constructors

  • StartPreciseCoverageResponse(timestamp: Float)

    Arguments

    timestamp

    Monotonically increasing time (in seconds) when the coverage update was taken in the backend.

This type is not part of the protocol spec, it has been generated dynamically to represent the response to the command stop

pub type StopResponse {
  StopResponse(profile: Profile)
}

Constructors

  • StopResponse(profile: Profile)

    Arguments

    profile

    Recorded profile.

This type is not part of the protocol spec, it has been generated dynamically to represent the response to the command take_precise_coverage

pub type TakePreciseCoverageResponse {
  TakePreciseCoverageResponse(
    result: List(ScriptCoverage),
    timestamp: Float,
  )
}

Constructors

  • TakePreciseCoverageResponse(
      result: List(ScriptCoverage),
      timestamp: Float,
    )

    Arguments

    result

    Coverage data for the current isolate.

    timestamp

    Monotonically increasing time (in seconds) when the coverage update was taken in the backend.

Values

pub fn disable(
  callback__: fn(String, option.Option(a)) -> b,
) -> b

This generated protocol command has no description

pub fn enable(callback__: fn(String, option.Option(a)) -> b) -> b

This generated protocol command has no description

pub fn get_best_effort_coverage(
  callback__: fn(String, option.Option(a)) -> Result(
    dynamic.Dynamic,
    chrome.RequestError,
  ),
) -> Result(GetBestEffortCoverageResponse, chrome.RequestError)

Collect coverage data for the current isolate. The coverage data may be incomplete due to garbage collection.

  • result : Coverage data for the current isolate.
pub fn set_sampling_interval(
  callback__: fn(String, option.Option(json.Json)) -> a,
  interval interval: Int,
) -> a

Changes CPU profiler sampling interval. Must be called before CPU profiles recording started.

Parameters:

  • interval : New sampling interval in microseconds.

Returns:

pub fn start(callback__: fn(String, option.Option(a)) -> b) -> b

This generated protocol command has no description

pub fn start_precise_coverage(
  callback__: fn(String, option.Option(json.Json)) -> Result(
    dynamic.Dynamic,
    chrome.RequestError,
  ),
  call_count call_count: option.Option(Bool),
  detailed detailed: option.Option(Bool),
  allow_triggered_updates allow_triggered_updates: option.Option(
    Bool,
  ),
) -> Result(StartPreciseCoverageResponse, chrome.RequestError)

Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code coverage may be incomplete. Enabling prevents running optimized code and resets execution counters.

Parameters:

  • call_count : Collect accurate call counts beyond simple ‘covered’ or ‘not covered’.
  • detailed : Collect block-based coverage.
  • allow_triggered_updates : Allow the backend to send updates on its own initiative

Returns:

  • timestamp : Monotonically increasing time (in seconds) when the coverage update was taken in the backend.
pub fn stop(
  callback__: fn(String, option.Option(a)) -> Result(
    dynamic.Dynamic,
    chrome.RequestError,
  ),
) -> Result(StopResponse, chrome.RequestError)

This generated protocol command has no description

  • profile : Recorded profile.
pub fn stop_precise_coverage(
  callback__: fn(String, option.Option(a)) -> b,
) -> b

Disable precise code coverage. Disabling releases unnecessary execution count records and allows executing optimized code.

pub fn take_precise_coverage(
  callback__: fn(String, option.Option(a)) -> Result(
    dynamic.Dynamic,
    chrome.RequestError,
  ),
) -> Result(TakePreciseCoverageResponse, chrome.RequestError)

Collect coverage data for the current isolate, and resets execution counters. Precise code coverage needs to have started.

  • result : Coverage data for the current isolate.
  • timestamp : Monotonically increasing time (in seconds) when the coverage update was taken in the backend.
Search Document