@@ -21,14 +21,13 @@ const supportsUserTiming =
21
21
// $FlowFixMe[method-unbinding]
22
22
typeof performance . measure === 'function' ;
23
23
24
- const TRACK_GROUP = 'Components ⚛' ;
24
+ const COMPONENTS_TRACK = 'Components ⚛' ;
25
25
26
26
// Reused to avoid thrashing the GC.
27
27
const reusableComponentDevToolDetails = {
28
28
dataType : 'track-entry' ,
29
29
color : 'primary' ,
30
- track : 'Blocking' , // Lane
31
- trackGroup : TRACK_GROUP ,
30
+ track : COMPONENTS_TRACK ,
32
31
} ;
33
32
const reusableComponentOptions = {
34
33
start : - 0 ,
@@ -38,9 +37,24 @@ const reusableComponentOptions = {
38
37
} ,
39
38
} ;
40
39
40
+ const LANES_TRACK_GROUP = 'Scheduler ⚛' ;
41
+
42
+ const reusableLaneDevToolDetails = {
43
+ dataType : 'track-entry' ,
44
+ color : 'primary' ,
45
+ track : 'Blocking' , // Lane
46
+ trackGroup : LANES_TRACK_GROUP ,
47
+ } ;
48
+ const reusableLaneOptions = {
49
+ start : - 0 ,
50
+ end : - 0 ,
51
+ detail : {
52
+ devtools : reusableLaneDevToolDetails ,
53
+ } ,
54
+ } ;
55
+
41
56
export function setCurrentTrackFromLanes ( lanes : number ) : void {
42
- reusableComponentDevToolDetails . track =
43
- getGroupNameOfHighestPriorityLane ( lanes ) ;
57
+ reusableLaneDevToolDetails . track = getGroupNameOfHighestPriorityLane ( lanes ) ;
44
58
}
45
59
46
60
export function logComponentRender (
@@ -107,21 +121,20 @@ export function logBlockingStart(
107
121
renderStartTime : number ,
108
122
) : void {
109
123
if ( supportsUserTiming ) {
110
- reusableComponentDevToolDetails . track = 'Blocking' ;
124
+ reusableLaneDevToolDetails . track = 'Blocking' ;
111
125
if ( eventTime > 0 && eventType !== null ) {
112
126
// Log the time from the event timeStamp until we called setState.
113
- reusableComponentDevToolDetails . color = 'secondary-dark' ;
114
- reusableComponentOptions . start = eventTime ;
115
- reusableComponentOptions . end =
116
- updateTime > 0 ? updateTime : renderStartTime ;
117
- performance . measure ( eventType , reusableComponentOptions ) ;
127
+ reusableLaneDevToolDetails . color = 'secondary-dark' ;
128
+ reusableLaneOptions . start = eventTime ;
129
+ reusableLaneOptions . end = updateTime > 0 ? updateTime : renderStartTime ;
130
+ performance . measure ( eventType , reusableLaneOptions ) ;
118
131
}
119
132
if ( updateTime > 0 ) {
120
133
// Log the time from when we called setState until we started rendering.
121
- reusableComponentDevToolDetails . color = 'primary-light' ;
122
- reusableComponentOptions . start = updateTime ;
123
- reusableComponentOptions . end = renderStartTime ;
124
- performance . measure ( 'Blocked' , reusableComponentOptions ) ;
134
+ reusableLaneDevToolDetails . color = 'primary-light' ;
135
+ reusableLaneOptions . start = updateTime ;
136
+ reusableLaneOptions . end = renderStartTime ;
137
+ performance . measure ( 'Blocked' , reusableLaneOptions ) ;
125
138
}
126
139
}
127
140
}
@@ -134,43 +147,42 @@ export function logTransitionStart(
134
147
renderStartTime : number ,
135
148
) : void {
136
149
if ( supportsUserTiming ) {
137
- reusableComponentDevToolDetails . track = 'Transition' ;
150
+ reusableLaneDevToolDetails . track = 'Transition' ;
138
151
if ( eventTime > 0 && eventType !== null ) {
139
152
// Log the time from the event timeStamp until we started a transition.
140
- reusableComponentDevToolDetails . color = 'secondary-dark' ;
141
- reusableComponentOptions . start = eventTime ;
142
- reusableComponentOptions . end =
153
+ reusableLaneDevToolDetails . color = 'secondary-dark' ;
154
+ reusableLaneOptions . start = eventTime ;
155
+ reusableLaneOptions . end =
143
156
startTime > 0
144
157
? startTime
145
158
: updateTime > 0
146
159
? updateTime
147
160
: renderStartTime ;
148
- performance . measure ( eventType , reusableComponentOptions ) ;
161
+ performance . measure ( eventType , reusableLaneOptions ) ;
149
162
}
150
163
if ( startTime > 0 ) {
151
164
// Log the time from when we started an async transition until we called setState or started rendering.
152
- reusableComponentDevToolDetails . color = 'primary-dark' ;
153
- reusableComponentOptions . start = startTime ;
154
- reusableComponentOptions . end =
155
- updateTime > 0 ? updateTime : renderStartTime ;
156
- performance . measure ( 'Action' , reusableComponentOptions ) ;
165
+ reusableLaneDevToolDetails . color = 'primary-dark' ;
166
+ reusableLaneOptions . start = startTime ;
167
+ reusableLaneOptions . end = updateTime > 0 ? updateTime : renderStartTime ;
168
+ performance . measure ( 'Action' , reusableLaneOptions ) ;
157
169
}
158
170
if ( updateTime > 0 ) {
159
171
// Log the time from when we called setState until we started rendering.
160
- reusableComponentDevToolDetails . color = 'primary-light' ;
161
- reusableComponentOptions . start = updateTime ;
162
- reusableComponentOptions . end = renderStartTime ;
163
- performance . measure ( 'Blocked' , reusableComponentOptions ) ;
172
+ reusableLaneDevToolDetails . color = 'primary-light' ;
173
+ reusableLaneOptions . start = updateTime ;
174
+ reusableLaneOptions . end = renderStartTime ;
175
+ performance . measure ( 'Blocked' , reusableLaneOptions ) ;
164
176
}
165
177
}
166
178
}
167
179
168
180
export function logRenderPhase ( startTime : number , endTime : number ) : void {
169
181
if ( supportsUserTiming ) {
170
- reusableComponentDevToolDetails . color = 'primary-dark' ;
171
- reusableComponentOptions . start = startTime ;
172
- reusableComponentOptions . end = endTime ;
173
- performance . measure ( 'Render' , reusableComponentOptions ) ;
182
+ reusableLaneDevToolDetails . color = 'primary-dark' ;
183
+ reusableLaneOptions . start = startTime ;
184
+ reusableLaneOptions . end = endTime ;
185
+ performance . measure ( 'Render' , reusableLaneOptions ) ;
174
186
}
175
187
}
176
188
@@ -180,10 +192,10 @@ export function logSuspenseThrottlePhase(
180
192
) : void {
181
193
// This was inside a throttled Suspense boundary commit.
182
194
if ( supportsUserTiming ) {
183
- reusableComponentDevToolDetails . color = 'secondary-light' ;
184
- reusableComponentOptions . start = startTime ;
185
- reusableComponentOptions . end = endTime ;
186
- performance . measure ( 'Throttled' , reusableComponentOptions ) ;
195
+ reusableLaneDevToolDetails . color = 'secondary-light' ;
196
+ reusableLaneOptions . start = startTime ;
197
+ reusableLaneOptions . end = endTime ;
198
+ performance . measure ( 'Throttled' , reusableLaneOptions ) ;
187
199
}
188
200
}
189
201
@@ -193,28 +205,28 @@ export function logSuspendedCommitPhase(
193
205
) : void {
194
206
// This means the commit was suspended on CSS or images.
195
207
if ( supportsUserTiming ) {
196
- reusableComponentDevToolDetails . color = 'secondary-light' ;
197
- reusableComponentOptions . start = startTime ;
198
- reusableComponentOptions . end = endTime ;
199
- performance . measure ( 'Suspended' , reusableComponentOptions ) ;
208
+ reusableLaneDevToolDetails . color = 'secondary-light' ;
209
+ reusableLaneOptions . start = startTime ;
210
+ reusableLaneOptions . end = endTime ;
211
+ performance . measure ( 'Suspended' , reusableLaneOptions ) ;
200
212
}
201
213
}
202
214
203
215
export function logCommitPhase ( startTime : number , endTime : number ) : void {
204
216
if ( supportsUserTiming ) {
205
- reusableComponentDevToolDetails . color = 'secondary-dark' ;
206
- reusableComponentOptions . start = startTime ;
207
- reusableComponentOptions . end = endTime ;
208
- performance . measure ( 'Commit' , reusableComponentOptions ) ;
217
+ reusableLaneDevToolDetails . color = 'secondary-dark' ;
218
+ reusableLaneOptions . start = startTime ;
219
+ reusableLaneOptions . end = endTime ;
220
+ performance . measure ( 'Commit' , reusableLaneOptions ) ;
209
221
}
210
222
}
211
223
212
224
export function logPaintYieldPhase ( startTime : number , endTime : number ) : void {
213
225
if ( supportsUserTiming ) {
214
- reusableComponentDevToolDetails . color = 'secondary-light' ;
215
- reusableComponentOptions . start = startTime ;
216
- reusableComponentOptions . end = endTime ;
217
- performance . measure ( 'Waiting for Paint' , reusableComponentOptions ) ;
226
+ reusableLaneDevToolDetails . color = 'secondary-light' ;
227
+ reusableLaneOptions . start = startTime ;
228
+ reusableLaneOptions . end = endTime ;
229
+ performance . measure ( 'Waiting for Paint' , reusableLaneOptions ) ;
218
230
}
219
231
}
220
232
@@ -223,9 +235,9 @@ export function logPassiveCommitPhase(
223
235
endTime : number ,
224
236
) : void {
225
237
if ( supportsUserTiming ) {
226
- reusableComponentDevToolDetails . color = 'secondary-dark' ;
227
- reusableComponentOptions . start = startTime ;
228
- reusableComponentOptions . end = endTime ;
229
- performance . measure ( 'Remaining Effects' , reusableComponentOptions ) ;
238
+ reusableLaneDevToolDetails . color = 'secondary-dark' ;
239
+ reusableLaneOptions . start = startTime ;
240
+ reusableLaneOptions . end = endTime ;
241
+ performance . measure ( 'Remaining Effects' , reusableLaneOptions ) ;
230
242
}
231
243
}
0 commit comments