module Callbacks:sig
..end
type
t
回调类型。
val create : ?runtime_begin:(int ->
Runtime_events.Timestamp.t ->
Runtime_events.runtime_phase -> unit) ->
?runtime_end:(int ->
Runtime_events.Timestamp.t ->
Runtime_events.runtime_phase -> unit) ->
?runtime_counter:(int ->
Runtime_events.Timestamp.t ->
Runtime_events.runtime_counter -> int -> unit) ->
?alloc:(int -> Runtime_events.Timestamp.t -> int array -> unit) ->
?lifecycle:(int ->
Runtime_events.Timestamp.t ->
Runtime_events.lifecycle -> int option -> unit) ->
?lost_events:(int -> int -> unit) -> unit -> t
创建一个 Callback
,可以选择性地订阅一个或多个运行时事件。传递给回调的第一个整数是环形缓冲区的索引。每个域在其存在期间拥有一个环形缓冲区。域终止后,新生成的域可能会接管环形缓冲区。当运行时进入新阶段时,会调用 runtime_begin
回调(例如,在次要 GC 开始时会调用带有 EV_MINOR 的 runtime_begin
)。当运行时离开某个阶段时,会调用 runtime_end
回调。当运行时发出计数器时,会调用 runtime_counter
回调。lifecycle
回调在环形缓冲区生命周期发生变化时调用,消费者可能需要做出响应。alloc
回调目前仅在已检测的运行时中调用。lost_events
回调在消费者代码检测到一些未消费的事件已被覆盖时调用。
val add_user_event : 'a Runtime_events.Type.t ->
(int -> Runtime_events.Timestamp.t -> 'a Runtime_events.User.t -> 'a -> unit) ->
t -> t
add_user_event ty callback t
将 t
扩展为额外订阅类型为 ty
的用户事件。当发生此类事件时,将使用相应的事件和有效负载调用 callback
。