Add some CPU and memory info to stats.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3820 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2022-02-05 17:52:37 +00:00
parent 39a1acaf38
commit 059024452c
2 changed files with 18 additions and 9 deletions

View File

@ -98,6 +98,7 @@ typedef struct _tf_task_t
uv_timer_t trace_timer;
uint64_t last_hrtime;
uint64_t last_idle_time;
float idle_percent;
uv_idle_t idle;
uv_prepare_t prepare;
@ -721,6 +722,14 @@ static JSValue _tf_task_getStats(JSContext* context, JSValueConst this_val, int
JS_SetPropertyStr(context, result, "import_count", JS_NewInt32(context, task->_import_count));
JS_SetPropertyStr(context, result, "export_count", JS_NewInt32(context, task->_export_count));
JS_SetPropertyStr(context, result, "promise_count", JS_NewInt32(context, task->_promise_count));
JS_SetPropertyStr(context, result, "idle_percent", JS_NewFloat64(context, task->idle_percent));
size_t rss;
if (uv_resident_set_memory(&rss) == 0)
{
JS_SetPropertyStr(context, result, "rss", JS_NewInt64(context, rss));
}
return result;
}
@ -1277,6 +1286,9 @@ static void _tf_task_trace_timer(uv_timer_t* timer)
tf_task_t* task = timer->data;
uint64_t hrtime = uv_hrtime();
uint64_t idle_time = uv_metrics_idle_time(&task->_loop);
task->idle_percent = (hrtime - task->last_hrtime) ? 100.0f * (idle_time - task->last_idle_time) / (hrtime - task->last_hrtime) : 0.0f;
task->last_hrtime = hrtime;
task->last_idle_time = idle_time;
const char* k_names[] =
{
"child_tasks",
@ -1291,10 +1303,8 @@ static void _tf_task_trace_timer(uv_timer_t* timer)
task->_import_count,
task->_export_count,
task->_promise_count,
(hrtime - task->last_hrtime) ? 100LL * (idle_time - task->last_idle_time) / (hrtime - task->last_hrtime) : 0,
(int64_t)task->idle_percent,
};
task->last_hrtime = hrtime;
task->last_idle_time = idle_time;
tf_trace_counter(task->_trace, "task", sizeof(k_names) / sizeof(*k_names), k_names, values);
}