stage request performance snapshots
This commit is contained in:
+21
-15
@@ -1711,23 +1711,29 @@ private:
|
||||
}));
|
||||
if(mod == "env" && name == "uce_host_request_perf")
|
||||
return(add([self](Caller, Span<const Val> args, Span<Val> results) -> Result<std::monostate, Trap> {
|
||||
DValue response;
|
||||
if(self->request_perf.active)
|
||||
String encoded;
|
||||
if(!self->hostcall_staged("request_perf", encoded))
|
||||
{
|
||||
f64 now = time_precise();
|
||||
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;
|
||||
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_start > 0)
|
||||
response["running_us"] = (f64)((now - self->request_perf.time_start) * 1000000.0);
|
||||
if(self->request_perf.time_init > 0)
|
||||
response["total_us"] = (f64)((now - self->request_perf.time_init) * 1000000.0);
|
||||
if(self->workspace_birth_us > 0)
|
||||
response["workspace_birth_us"] = (f64)self->workspace_birth_us;
|
||||
DValue response;
|
||||
if(self->request_perf.active)
|
||||
{
|
||||
f64 now = time_precise();
|
||||
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;
|
||||
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_start > 0)
|
||||
response["running_us"] = (f64)((now - self->request_perf.time_start) * 1000000.0);
|
||||
if(self->request_perf.time_init > 0)
|
||||
response["total_us"] = (f64)((now - self->request_perf.time_init) * 1000000.0);
|
||||
if(self->workspace_birth_us > 0)
|
||||
response["workspace_birth_us"] = (f64)self->workspace_birth_us;
|
||||
}
|
||||
encoded = ucb_encode(response);
|
||||
if(args[2].i32() == 0)
|
||||
self->hostcall_stage("request_perf", encoded);
|
||||
}
|
||||
String encoded = ucb_encode(response);
|
||||
u32 cap = (u32)args[3].i32();
|
||||
int32_t buf = args[2].i32();
|
||||
if(buf != 0 && cap >= encoded.size())
|
||||
|
||||
Reference in New Issue
Block a user