Profile pre-dispatch WASM readiness
This commit is contained in:
@@ -1343,6 +1343,12 @@ public:
|
||||
f64 time_params = 0;
|
||||
f64 time_input = 0;
|
||||
f64 time_start = 0;
|
||||
u64 ready_normalize_us = 0;
|
||||
u64 ready_mutation_check_us = 0;
|
||||
u64 ready_artifact_stat_us = 0;
|
||||
u64 ready_freshness_us = 0;
|
||||
u64 ready_worker_us = 0;
|
||||
u32 ready_check_count = 0;
|
||||
f64 workspace_wall_start = 0;
|
||||
f64 workspace_cpu_start = 0;
|
||||
struct rusage thread_runtime_start = {};
|
||||
@@ -1358,6 +1364,8 @@ public:
|
||||
|
||||
void set_perf_snapshot(u64 worker_pid, u64 parent_pid, u64 request_count,
|
||||
f64 time_init, f64 time_params, f64 time_input, f64 time_start,
|
||||
u64 ready_normalize_us, u64 ready_mutation_check_us, u64 ready_artifact_stat_us,
|
||||
u64 ready_freshness_us, u64 ready_worker_us, u32 ready_check_count,
|
||||
f64 workspace_wall_start, f64 workspace_cpu_start)
|
||||
{
|
||||
request_perf.worker_pid = worker_pid;
|
||||
@@ -1367,6 +1375,12 @@ public:
|
||||
request_perf.time_params = time_params;
|
||||
request_perf.time_input = time_input;
|
||||
request_perf.time_start = time_start;
|
||||
request_perf.ready_normalize_us = ready_normalize_us;
|
||||
request_perf.ready_mutation_check_us = ready_mutation_check_us;
|
||||
request_perf.ready_artifact_stat_us = ready_artifact_stat_us;
|
||||
request_perf.ready_freshness_us = ready_freshness_us;
|
||||
request_perf.ready_worker_us = ready_worker_us;
|
||||
request_perf.ready_check_count = ready_check_count;
|
||||
request_perf.workspace_wall_start = workspace_wall_start;
|
||||
request_perf.workspace_cpu_start = workspace_cpu_start;
|
||||
request_perf.active = true;
|
||||
@@ -2645,6 +2659,12 @@ private:
|
||||
response["worker_pid"] = (f64)self->request_perf.worker_pid;
|
||||
response["parent_pid"] = (f64)self->request_perf.parent_pid;
|
||||
response["request_count"] = (f64)self->request_perf.request_count;
|
||||
response["ready_normalize_us"] = (f64)self->request_perf.ready_normalize_us;
|
||||
response["ready_mutation_check_us"] = (f64)self->request_perf.ready_mutation_check_us;
|
||||
response["ready_artifact_stat_us"] = (f64)self->request_perf.ready_artifact_stat_us;
|
||||
response["ready_freshness_us"] = (f64)self->request_perf.ready_freshness_us;
|
||||
response["ready_worker_us"] = (f64)self->request_perf.ready_worker_us;
|
||||
response["ready_check_count"] = (f64)self->request_perf.ready_check_count;
|
||||
if(self->request_perf.time_start > 0 && self->request_perf.time_init > 0)
|
||||
response["accept_us"] = (f64)((self->request_perf.time_start - self->request_perf.time_init) * 1000000.0);
|
||||
if(self->request_perf.time_params > 0 && self->request_perf.time_init > 0)
|
||||
@@ -3883,6 +3903,9 @@ inline WasmResponse wasm_worker_serve(WasmWorker& worker, const Request& request
|
||||
(u64)((setup_cpu_finished - cpu_started) * 1000000.0) : 0;
|
||||
workspace.set_perf_snapshot(my_pid, (u64)parent_pid, request.server ? request.server->request_count : 0,
|
||||
request.stats.time_init, request.stats.time_params, request.stats.time_input, request.stats.time_start,
|
||||
request.stats.wasm_ready_normalize_us, request.stats.wasm_ready_mutation_check_us,
|
||||
request.stats.wasm_ready_artifact_stat_us, request.stats.wasm_ready_freshness_us,
|
||||
request.stats.wasm_ready_worker_us, request.stats.wasm_ready_check_count,
|
||||
serve_started, cpu_started);
|
||||
workspace.request_perf.thread_runtime_start = thread_runtime_start;
|
||||
workspace.request_perf.thread_cpu_start = thread_cpu_start;
|
||||
|
||||
Reference in New Issue
Block a user