GeezerVison is showing github.com — src: add loop idle time in diagnostic report · nodejs/node@4486801
File tree
Expand file treeCollapse file tree
Open diff view settings
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: doc/api/report.md +2-1Lines changed: 2 additions & 1 deletion - Display the source diff
- Display the rich diff
| Original file line number | Diff line number | Diff line change |
|---|
@@ -292,7 +292,8 @@ is provided below for reference. |
292 | 292 | { |
293 | 293 | "type": "loop", |
294 | 294 | "is_active": true, |
295 | | - "address": "0x000055fc7b2cb180" |
| 295 | + "address": "0x000055fc7b2cb180", |
| 296 | + "loopIdleTimeSeconds": 22644.8 |
296 | 297 | } |
297 | 298 | ], |
298 | 299 | "workers": [], |
|
Collapse file
Copy file name to clipboardExpand all lines: src/node_report.cc +4Lines changed: 4 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -294,6 +294,10 @@ static void WriteNodeReport(Isolate* isolate, |
294 | 294 | static_cast<bool>(uv_loop_alive(env->event_loop()))); |
295 | 295 | writer.json_keyvalue("address", |
296 | 296 | ValueToHexString(reinterpret_cast<int64_t>(env->event_loop()))); |
| 297 | + |
| 298 | + // Report Event loop idle time |
| 299 | + uint64_t idle_time = uv_metrics_idle_time(env->event_loop()); |
| 300 | + writer.json_keyvalue("loopIdleTimeSeconds", 1.0 * idle_time / 1e9); |
297 | 301 | writer.json_end(); |
298 | 302 | } |
299 | 303 |
|
|
Collapse file
Copy file name to clipboardExpand all lines: test/report/test-report-uv-handles.js +3Lines changed: 3 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -128,6 +128,9 @@ if (process.argv[2] === 'child') { |
128 | 128 | assert.strictEqual(handle.filename, expected_filename); |
129 | 129 | assert(handle.is_referenced); |
130 | 130 | }), |
| 131 | + loop: common.mustCall(function loop_validator(handle) { |
| 132 | + assert.strictEqual(typeof handle.loopIdleTimeSeconds, 'number'); |
| 133 | + }), |
131 | 134 | pipe: common.mustCallAtLeast(function pipe_validator(handle) { |
132 | 135 | assert(handle.is_referenced); |
133 | 136 | }), |
|