perfExtrasReader top-level property

Map<String, Object?> Function() perfExtrasReader
getter/setter pair

Reader for the magic-side performance extras, the source of the report's counters.magic and summary.routeTransitions.

Defaults to a function returning an empty structure for every key, so a host without the perf integration wired gets a valid, empty section.

Contract: set-once-per-isolate from MagicPerfIntegration.install(). Reset to this default by MagicPerfIntegration.resetForTesting(). The key set, every map a count since perfSessionBeginHook last ran:

  • controllerNotifies: Map<String, int>, controller runtime type to notifies.
  • notifyCauses: Map<String, int>, notify cause to notifies.
  • queryReloads: Map<String, int>, query to reloads.
  • actions: Map<String, int>, action type to runs.
  • events: Map<String, int>, event type to dispatches.
  • casts: Map<String, int>, cast type to applications.
  • timerTicks: Map<String, int>, timer owner to ticks.
  • broadcasts: Map<String, int>, broadcast event to deliveries.
  • routeTransitions: List<Map<String, Object?>> of {route, durationMicros, time}.

Every Map<String, int> is reported raw and per painted frame, ranked and cut to the head with the cut counted in omitted; a numeric value is reported raw and per painted frame; any other key is ignored rather than failing the report, so a key added here before dusk ships support for it costs nothing.

Implementation

Map<String, Object?> Function() perfExtrasReader = () => <String, Object?>{
      'controllerNotifies': <String, int>{},
      'notifyCauses': <String, int>{},
      'queryReloads': <String, int>{},
      'actions': <String, int>{},
      'events': <String, int>{},
      'casts': <String, int>{},
      'timerTicks': <String, int>{},
      'broadcasts': <String, int>{},
      'routeTransitions': <Map<String, Object?>>[],
    };