メトリクス操作¶
libuvは、イベントループの各種内部操作を追跡するためのメトリクスAPIを提供します。
データ型¶
-
type uv_metrics_t¶
イベントループのメトリクスを格納する構造体です。メトリクスカウンターの不整合を避けるため、次のコールバック内でこれらのメトリクスを取得することを推奨します:
uv_prepare_cb。typedef struct { uint64_t loop_count; uint64_t events; uint64_t events_waiting; /* private */ uint64_t* reserved[13]; } uv_metrics_t;
公開メンバー¶
-
uint64_t uv_metrics_t.loop_count¶
イベントループの反復回数です。
-
uint64_t uv_metrics_t.events¶
イベントハンドラーが処理したイベントの数です。
-
uint64_t uv_metrics_t.events_waiting¶
イベントプロバイダーを呼び出した時点で、処理を待っていたイベントの数です。
API¶
-
uint64_t uv_metrics_idle_time(uv_loop_t *loop)¶
イベントループがカーネルのイベントプロバイダー(例:
epoll_wait)内でアイドル状態だった時間を取得します。この呼び出しはスレッドセーフです。返す値は、次の型のイベントループ、
uv_loop_tでアイドル時間の収集を設定してから、カーネルのイベントプロバイダー内でアイドル状態だった時間の累積値です。注記
イベントプロバイダーのアイドル時間の累積は、次の関数、
uv_loop_configureを、次のオプションを指定して呼び出すまで開始しません:UV_METRICS_IDLE_TIME。バージョン1.39.0で追加。
-
int uv_metrics_info(uv_loop_t *loop, uv_metrics_t *metrics)¶
イベントループの現在のメトリクス一式を、次のポインターへコピーします:
metrics。バージョン1.45.0で追加。