Module Kind.Input

type t =
  1. | Telemetry_idle_callback
    (*

    Measures the amount of time that the app can be "idle". This will be measured when the browser is able to call into requestIdleCallback.

    *)
  2. | Bonsai_whole_frame_loop
    (*

    Total time that it takes for bonsai to render a frame from executing actions, stabilizing, vdom diffing, etc... This may be the most useful "global" frame time.

    *)
  3. | Bonsai_stabilization_update_visibility
    (*

    Time taken to stabilize bonsai graph nodes linked to layout changes

    *)
  4. | Bonsai_stabilization_clock
    (*

    Time taken to stabilize bonsai graph nodes linked to clock changes

    *)
  5. | Bonsai_stabilization_action
    (*

    Time taken to stabilize bonsai graph nodes linked to executing an action

    *)
  6. | Bonsai_stabilization_after_apply_actions
    (*

    Time taken to stabilize bonsai graph nodes after actions and stabilizations have changed graph inputs

    *)
  7. | Bonsai_update_visibility
    (*

    Time taken to recompute which parts of the DOM have had their layout changed

    *)
  8. | Bonsai_apply_action
    (*

    Time taken by bonsai to evaluate state machines (apply action)

    *)
  9. | Bonsai_diff_vdom
    (*

    Time taken by the virtual dom implementation to diff the changed nodes

    *)
  10. | Bonsai_patch_vdom
    (*

    Time taken by the virtual dom implementation to actually mutate the dom

    *)
  11. | Bonsai_display_handlers
    (*

    Time taken to trigger on_display edges

    *)
  12. | Browser_long_task
    (*

    Measures the time spent in a "long task" as defined by the browser (50ms or more). This is meassured using the PerformanceLongTaskTiming API.

    *)
  13. | Bonsai_start_of_frame_to_start_of_next_frame
    (*

    Time that occurs between the start of each frame. It will not be less than 16ms on a 60hz refresh rate. This measure is also very representative that performance felt by users.

    *)
  14. | Bonsai_end_of_frame_to_start_of_next_frame
    (*

    Time between the end of a frame and a new frame. Contrarily to other measures, the larger this is, the better this will be. It will top at 16ms maximum at 60hz refresh rate.

    *)
  15. | Metrics_count_dom_nodes
    (*

    At page close only: Counts the number of dom nodes at page close.

    *)
  16. | Bonsai_graph_application
    (*

    At startup only: Total time to construct the initial graph

    *)
  17. | Bonsai_preprocess
    (*

    At startup only: Total time to optimize the graph

    *)
  18. | Bonsai_gather
    (*

    At startup only: Total time to make the graph runnable

    *)
val to_string : t -> string
val of_string : string -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
include Ppx_compare_lib.Equal.S with type t := t
val equal : t -> t -> bool
include Ppx_compare_lib.Comparable.S with type t := t
val compare : t -> t -> int
include Ppx_enumerate_lib.Enumerable.S with type t := t
val all : t list