Skip to content

Commit d5dfdcc

Browse files
committed
Meetings: Add notes from 2016-06-01 meeting.
1 parent 2650b32 commit d5dfdcc

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

wg-meetings/2016-06-01.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Node.js Tracing/Diag WG Meeting
2+
3+
- Date: 2016-06-01
4+
- YouTube: http://www.youtube.com/watch?v=tNxYDvQ1kT8
5+
6+
## Attendees
7+
8+
- @joshgav
9+
- @mhdawson
10+
- @matthewloring
11+
- @ofrobots
12+
- @paulirish
13+
- @pavelfeldman
14+
- @caseq
15+
- @jasonlaster
16+
- @pmuellr
17+
- @fmeawad
18+
+ several more via YouTube
19+
20+
## Agenda
21+
22+
- TRACE_EVENT - Google's plans and how Node can build on them (@ofrobots)
23+
- Trace module - @joshgav's proposal - why and what.
24+
- [nodejs/tracing-wg#50], [joshgav/node-trace]
25+
- Chrome Debugging Protocol and v8_inspector (@ofrobots, Google)
26+
- [nodejs/node#6792], [nodejs/node#7072]
27+
- What it brings to Node and the community now and in the future.
28+
- How can the Diagnostics WG utilize it?
29+
- AsyncWrap [deferred]
30+
- Expanding scope of this WG [deferred]
31+
32+
## Next Meeting
33+
34+
- Return to monthly cadence - first Wednesday of each month at 12pm US Pacific (immediately before CTC meeting). Next meeting will be July 6.
35+
36+
## Minutes
37+
38+
### Tracing
39+
40+
In Chromium, the Trace Event trace system is implemented through a Tracing Controller. @ofrobots and @matthewloring are working on porting this implementation to V8/D8.
41+
42+
In this Tracing Controller, traces are not streamed, they are collected in memory and dumped on request. It would be up to Node to determine how to flush, stream, etc. in Node.
43+
44+
chrome://tracing is intended for platform developers while “Timeline” view in Chrome DevTools is intended for web/app developers. Data source is the same but filtered differently for each tool.
45+
46+
Currently structural tracing is used, but work is in progress to make sampling tracing more efficient/performant and shift to sampling for most uses. See [this video](https://www.youtube.com/watch?v=nxXkquTPng8) for background on structural vs. sampling tracing.
47+
48+
CDP allows configuration of tracing through the Tracing domain:
49+
https://chromedevtools.github.io/debugger-protocol-viewer/tot/Tracing/
50+
51+
Google recommends we use the same tracing components but configure appropriately for Node.
52+
53+
Trace output can be processed and visualized by other tools too. Google is evaluating trace output format, considering binary format perhaps based on ProtoBuf. Currently format is agreed upon by Chromium tools teams and documented [here][Trace Events file format]: https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview
54+
55+
Chromium’s tracing system and implementation could be used for Node core as well as native and JS modules.
56+
57+
In V8, console.time, console.timeEnd mark a timestamp and send a trace event. Would need a Node-specific JS implementation using Node-appropriate semantics, possibly in `console`. https://chromium.googlesource.com/chromium/src/+/lkcr/third_party/WebKit/Source/core/inspector/ThreadDebugger.cpp#349
58+
59+
4μs per call when tracing is on (0ms when off) with Chromium Tracing Controller. Categories which are disabled are off (no penalty).
60+
61+
62+
### CDP
63+
64+
Original [V8 Debugging Protocol][] doesn’t support object mirrors efficiently (can’t get props without values). CDP allows V8 to drop support for old protocol, especially the mirrors.
65+
66+
Benefits: It’s more efficient. Domains.
67+
68+
Anyone can add domains, Node could identify a canonical subset of the protocol to be supported.
69+
70+
Google/V8 have only been adding to CDP, not changing existing messages.
71+
72+
CDT is reference impl of protocol. In GitHub ([CDT repo][]) there’s an [SDK layer][] that CDT uses to connect to the protocol.
73+
74+
75+
## For next time:
76+
77+
Next meeting: Wednesday 7/6, 12pm US Pacific.
78+
79+
For discussions, Josh will start and continue threads in nodejs/tracing-wg.
80+
81+
These topics were deferred to GitHub and/or a later meeting:
82+
83+
- AsyncWrap (@trevnorris)
84+
- [nodejs/tracing-wg#29], [nodejs/node-eps#18]
85+
- Expanding scope of this workgroup as Diagnostics WG (#46, #47)
86+
87+
[V8 Debugging Protocol]: https://github.com/v8/v8/wiki/Debugging-Protocol
88+
[CDT repo]: https://github.com/ChromeDevTools/devtools-frontend
89+
[SDK layer]: https://github.com/ChromeDevTools/devtools-frontend/tree/master/front_end/sdk
90+
[Trace Events file format]: https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview
91+

0 commit comments

Comments
 (0)