1 <?xml version=
"1.0" encoding=
"UTF-8" standalone=
"no"?>
2 <diagram program=
"umlet" version=
"14.3.0">
3 <zoom_level>10</zoom_level>
12 <panel_attributes>/PProfilerParent/
15 *+SendAwaitNextChunkManagerUpdate()*
16 *+SendDestroyReleasedChunksAtOrBefore()*
</panel_attributes>
17 <additional_attributes/>
27 <panel_attributes>*ProfileBufferChunkMetadata*
33 <additional_attributes/>
43 <panel_attributes>/PProfilerChild/
46 */+RecvAwaitNextChunkManagerUpdate() =
0/*
47 */+RecvDestroyReleasedChunksAtOrBefore() =
0/*
49 <additional_attributes/>
59 <panel_attributes>ProfilerParent
64 <additional_attributes/>
74 <panel_attributes>lt=
<<-
</panel_attributes>
75 <additional_attributes>10.0;
10.0;
10.0;
90.0</additional_attributes>
85 <panel_attributes>ProfilerChild
87 -UpdateStorage: unreleased bytes, released: {pid, rangeStart[ ]}
89 *+RecvAwaitNextChunkUpdate()*
90 *+RecvDestroyReleasedChunksAtOrBefore()*
92 <additional_attributes/>
102 <panel_attributes>lt=
<<-
</panel_attributes>
103 <additional_attributes>10.0;
10.0;
10.0;
80.0</additional_attributes>
113 <panel_attributes>ProfilerParentTracker
116 _*+ForChild()*_
</panel_attributes>
117 <additional_attributes/>
127 <panel_attributes>lt=
<-
129 nsTArray
<ProfilerParent*
></panel_attributes>
130 <additional_attributes>10.0;
10.0;
10.0;
80.0</additional_attributes>
140 <panel_attributes>ProfileBufferChunk
</panel_attributes>
141 <additional_attributes/>
151 <panel_attributes>/ProfileBufferChunkManager/
</panel_attributes>
152 <additional_attributes/>
162 <panel_attributes>ProfileBufferChunkManagerWithLocalLimit
164 -mUpdateCallback
</panel_attributes>
165 <additional_attributes/>
175 <panel_attributes>lt=
<<-
</panel_attributes>
176 <additional_attributes>10.0;
130.0;
10.0;
10.0</additional_attributes>
186 <panel_attributes>ProfileChunkedBuffer
</panel_attributes>
187 <additional_attributes/>
197 <panel_attributes>lt=-
>>>>
198 mChunkManager
</panel_attributes>
199 <additional_attributes>10.0;
10.0;
10.0;
110.0</additional_attributes>
209 <panel_attributes>CorePS
</panel_attributes>
210 <additional_attributes/>
220 <panel_attributes>ActivePS
</panel_attributes>
221 <additional_attributes/>
231 <panel_attributes>lt=-
>>>>>
232 mCoreBuffer
</panel_attributes>
233 <additional_attributes>10.0;
20.0;
380.0;
20.0</additional_attributes>
243 <panel_attributes>lt=-
>>>>>
244 mProfileBufferChunkManager
</panel_attributes>
245 <additional_attributes>10.0;
10.0;
90.0;
100.0</additional_attributes>
255 <panel_attributes>ProfileBuffer
</panel_attributes>
256 <additional_attributes/>
266 <panel_attributes>lt=-
>>>>>
267 mProfileBuffer
</panel_attributes>
268 <additional_attributes>10.0;
90.0;
40.0;
10.0</additional_attributes>
278 <panel_attributes>lt=-
>>>>
279 mEntries
</panel_attributes>
280 <additional_attributes>10.0;
50.0;
250.0;
10.0</additional_attributes>
290 <panel_attributes>lt=-
>>>>>
292 mCurrentChunk: UniquePtr
<></panel_attributes>
293 <additional_attributes>10.0;
10.0;
10.0;
130.0;
290.0;
130.0</additional_attributes>
303 <panel_attributes>lt=-
>>>>>
305 mNextChunks: UniquePtr
<></panel_attributes>
306 <additional_attributes>20.0;
10.0;
170.0;
130.0</additional_attributes>
316 <panel_attributes>lt=-
>>>>>
318 mReleasedChunks: UniquePtr
<></panel_attributes>
319 <additional_attributes>10.0;
130.0;
10.0;
10.0</additional_attributes>
329 <panel_attributes>lt=-
>>>>>
330 mOwnedChunkManager: UniquePtr
<></panel_attributes>
331 <additional_attributes>10.0;
10.0;
10.0;
110.0</additional_attributes>
341 <panel_attributes>*ProfileBufferGlobalController*
344 -mCurrentUnreleasedBytesTotal
345 -mCurrentUnreleasedBytes: {pid, unreleased bytes}[ ] sorted by pid
346 -mCurrentReleasedBytes
347 -mReleasedChunks: {doneTimeStamp, bytes, pid}[ ] sorted by timestamp
348 -mDestructionCallback: function
<void(pid, rangeStart)
>
350 +Update(pid, unreleased bytes, released: ProfileBufferChunkMetadata[ ])
</panel_attributes>
351 <additional_attributes/>
361 <panel_attributes>lt=-
>>>>>
362 mController
</panel_attributes>
363 <additional_attributes>160.0;
20.0;
10.0;
20.0</additional_attributes>
373 <panel_attributes>lt=-
>>>>>
374 _sInstance_
</panel_attributes>
375 <additional_attributes>90.0;
60.0;
10.0;
60.0;
10.0;
10.0;
90.0;
10.0</additional_attributes>
385 <panel_attributes>The controller is only needed
386 if there *are* child processes,
387 so we can create it with the first
388 child (at which point the tracker
389 can register itself with the local
390 profiler), and destroyed with the
392 bg=blue
</panel_attributes>
393 <additional_attributes/>
404 <additional_attributes>10.0;
10.0;
80.0;
60.0</additional_attributes>
414 <panel_attributes>lt=-
>>>>
415 mParentChunkManager
</panel_attributes>
416 <additional_attributes>180.0;
360.0;
10.0;
360.0;
10.0;
10.0</additional_attributes>
426 <panel_attributes>lt=-
>>>>
427 mLocalBufferChunkManager
</panel_attributes>
428 <additional_attributes>10.0;
490.0;
330.0;
490.0;
330.0;
10.0</additional_attributes>
438 <panel_attributes>*ProfileBufferControlledChunkManager::Update*
442 -mOldestDoneTimeStamp
443 -mNewReleasedChunks: ChunkMetadata[ ]
</panel_attributes>
444 <additional_attributes/>
454 <panel_attributes>*ProfileBufferControlledChunkManager::ChunkMetadata*
457 -mBufferBytes
</panel_attributes>
458 <additional_attributes/>
468 <panel_attributes>lt=
<.
</panel_attributes>
469 <additional_attributes>10.0;
10.0;
10.0;
40.0</additional_attributes>
479 <panel_attributes>lt=
<.
</panel_attributes>
480 <additional_attributes>10.0;
10.0;
10.0;
40.0</additional_attributes>
490 <panel_attributes>lt=
<.
</panel_attributes>
491 <additional_attributes>10.0;
10.0;
110.0;
90.0</additional_attributes>
501 <panel_attributes>lt=
<.
</panel_attributes>
502 <additional_attributes>110.0;
10.0;
10.0;
90.0</additional_attributes>
512 <panel_attributes>*ProfileBufferChunkManagerUpdate*
518 -newlyReleasedChunks: ProfileBufferChunkMetadata[ ]
</panel_attributes>
519 <additional_attributes/>
529 <panel_attributes>*ProfileBufferControlledChunkManager*
531 */+SetUpdateCallback(function
<void(update: Update
&&)
>)/*
532 */+DestroyChunksAtOrBefore(timeStamp)/*
</panel_attributes>
533 <additional_attributes/>
543 <panel_attributes>lt=
<<-
</panel_attributes>
544 <additional_attributes>10.0;
10.0;
10.0;
60.0</additional_attributes>