546 lines
13 KiB
XML
546 lines
13 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
<diagram program="umlet" version="14.3.0">
|
|
<zoom_level>10</zoom_level>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>70</x>
|
|
<y>110</y>
|
|
<w>300</w>
|
|
<h>70</h>
|
|
</coordinates>
|
|
<panel_attributes>/PProfilerParent/
|
|
bg=light_gray
|
|
--
|
|
*+SendAwaitNextChunkManagerUpdate()*
|
|
*+SendDestroyReleasedChunksAtOrBefore()*</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>470</x>
|
|
<y>20</y>
|
|
<w>210</w>
|
|
<h>70</h>
|
|
</coordinates>
|
|
<panel_attributes>*ProfileBufferChunkMetadata*
|
|
bg=light_gray
|
|
--
|
|
+doneTimeStamp
|
|
+bufferBytes
|
|
</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>780</x>
|
|
<y>110</y>
|
|
<w>330</w>
|
|
<h>70</h>
|
|
</coordinates>
|
|
<panel_attributes>/PProfilerChild/
|
|
bg=light_gray
|
|
--
|
|
*/+RecvAwaitNextChunkManagerUpdate() = 0/*
|
|
*/+RecvDestroyReleasedChunksAtOrBefore() = 0/*
|
|
</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>110</x>
|
|
<y>260</y>
|
|
<w>220</w>
|
|
<h>70</h>
|
|
</coordinates>
|
|
<panel_attributes>ProfilerParent
|
|
--
|
|
*-processId*
|
|
--
|
|
</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>210</x>
|
|
<y>170</y>
|
|
<w>30</w>
|
|
<h>110</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<<-</panel_attributes>
|
|
<additional_attributes>10.0;10.0;10.0;90.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>740</x>
|
|
<y>250</y>
|
|
<w>410</w>
|
|
<h>90</h>
|
|
</coordinates>
|
|
<panel_attributes>ProfilerChild
|
|
--
|
|
-UpdateStorage: unreleased bytes, released: {pid, rangeStart[ ]}
|
|
--
|
|
*+RecvAwaitNextChunkUpdate()*
|
|
*+RecvDestroyReleasedChunksAtOrBefore()*
|
|
</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>930</x>
|
|
<y>170</y>
|
|
<w>30</w>
|
|
<h>100</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<<-</panel_attributes>
|
|
<additional_attributes>10.0;10.0;10.0;80.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>110</x>
|
|
<y>400</y>
|
|
<w>220</w>
|
|
<h>70</h>
|
|
</coordinates>
|
|
<panel_attributes>ProfilerParentTracker
|
|
--
|
|
_+Enumerate()_
|
|
_*+ForChild()*_</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>210</x>
|
|
<y>320</y>
|
|
<w>190</w>
|
|
<h>100</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<-
|
|
m1=0..n
|
|
nsTArray<ProfilerParent*></panel_attributes>
|
|
<additional_attributes>10.0;10.0;10.0;80.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>80</x>
|
|
<y>1070</y>
|
|
<w>150</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>ProfileBufferChunk</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>380</x>
|
|
<y>1070</y>
|
|
<w>210</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>/ProfileBufferChunkManager/</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>180</x>
|
|
<y>900</y>
|
|
<w>700</w>
|
|
<h>50</h>
|
|
</coordinates>
|
|
<panel_attributes>ProfileBufferChunkManagerWithLocalLimit
|
|
--
|
|
-mUpdateCallback</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>480</x>
|
|
<y>940</y>
|
|
<w>30</w>
|
|
<h>150</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<<-</panel_attributes>
|
|
<additional_attributes>10.0;130.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>380</x>
|
|
<y>1200</y>
|
|
<w>210</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>ProfileChunkedBuffer</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>410</x>
|
|
<y>1090</y>
|
|
<w>140</w>
|
|
<h>130</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=->>>>
|
|
mChunkManager</panel_attributes>
|
|
<additional_attributes>10.0;10.0;10.0;110.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>960</x>
|
|
<y>1200</y>
|
|
<w>100</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>CorePS</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>960</x>
|
|
<y>1040</y>
|
|
<w>100</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>ActivePS</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>580</x>
|
|
<y>1200</y>
|
|
<w>400</w>
|
|
<h>40</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=->>>>>
|
|
mCoreBuffer</panel_attributes>
|
|
<additional_attributes>10.0;20.0;380.0;20.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>870</x>
|
|
<y>940</y>
|
|
<w>250</w>
|
|
<h>120</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=->>>>>
|
|
mProfileBufferChunkManager</panel_attributes>
|
|
<additional_attributes>10.0;10.0;90.0;100.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>830</x>
|
|
<y>1140</y>
|
|
<w>100</w>
|
|
<h>30</h>
|
|
</coordinates>
|
|
<panel_attributes>ProfileBuffer</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>920</x>
|
|
<y>1060</y>
|
|
<w>130</w>
|
|
<h>110</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=->>>>>
|
|
mProfileBuffer</panel_attributes>
|
|
<additional_attributes>10.0;90.0;40.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>580</x>
|
|
<y>1160</y>
|
|
<w>270</w>
|
|
<h>70</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=->>>>
|
|
mEntries</panel_attributes>
|
|
<additional_attributes>10.0;50.0;250.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>90</x>
|
|
<y>1090</y>
|
|
<w>310</w>
|
|
<h>150</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=->>>>>
|
|
m1=0..1
|
|
mCurrentChunk: UniquePtr<></panel_attributes>
|
|
<additional_attributes>10.0;10.0;10.0;130.0;290.0;130.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>210</x>
|
|
<y>1080</y>
|
|
<w>200</w>
|
|
<h>150</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=->>>>>
|
|
m1=0..N
|
|
mNextChunks: UniquePtr<></panel_attributes>
|
|
<additional_attributes>20.0;10.0;170.0;130.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>200</x>
|
|
<y>940</y>
|
|
<w>230</w>
|
|
<h>150</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=->>>>>
|
|
m1=0..N
|
|
mReleasedChunks: UniquePtr<></panel_attributes>
|
|
<additional_attributes>10.0;130.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>530</x>
|
|
<y>1090</y>
|
|
<w>270</w>
|
|
<h>130</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=->>>>>
|
|
mOwnedChunkManager: UniquePtr<></panel_attributes>
|
|
<additional_attributes>10.0;10.0;10.0;110.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>480</x>
|
|
<y>390</y>
|
|
<w>550</w>
|
|
<h>150</h>
|
|
</coordinates>
|
|
<panel_attributes>*ProfileBufferGlobalController*
|
|
--
|
|
-mMaximumBytes
|
|
-mCurrentUnreleasedBytesTotal
|
|
-mCurrentUnreleasedBytes: {pid, unreleased bytes}[ ] sorted by pid
|
|
-mCurrentReleasedBytes
|
|
-mReleasedChunks: {doneTimeStamp, bytes, pid}[ ] sorted by timestamp
|
|
-mDestructionCallback: function<void(pid, rangeStart)>
|
|
--
|
|
+Update(pid, unreleased bytes, released: ProfileBufferChunkMetadata[ ])</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>320</x>
|
|
<y>420</y>
|
|
<w>180</w>
|
|
<h>40</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=->>>>>
|
|
mController</panel_attributes>
|
|
<additional_attributes>160.0;20.0;10.0;20.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>20</x>
|
|
<y>400</y>
|
|
<w>110</w>
|
|
<h>80</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=->>>>>
|
|
_sInstance_</panel_attributes>
|
|
<additional_attributes>90.0;60.0;10.0;60.0;10.0;10.0;90.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLNote</id>
|
|
<coordinates>
|
|
<x>480</x>
|
|
<y>250</y>
|
|
<w>220</w>
|
|
<h>120</h>
|
|
</coordinates>
|
|
<panel_attributes>The controller is only needed
|
|
if there *are* child processes,
|
|
so we can create it with the first
|
|
child (at which point the tracker
|
|
can register itself with the local
|
|
profiler), and destroyed with the
|
|
last child.
|
|
bg=blue</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>690</x>
|
|
<y>330</y>
|
|
<w>100</w>
|
|
<h>80</h>
|
|
</coordinates>
|
|
<panel_attributes/>
|
|
<additional_attributes>10.0;10.0;80.0;60.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>130</x>
|
|
<y>460</y>
|
|
<w>200</w>
|
|
<h>380</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=->>>>
|
|
mParentChunkManager</panel_attributes>
|
|
<additional_attributes>180.0;360.0;10.0;360.0;10.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>740</x>
|
|
<y>330</y>
|
|
<w>350</w>
|
|
<h>510</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=->>>>
|
|
mLocalBufferChunkManager</panel_attributes>
|
|
<additional_attributes>10.0;490.0;330.0;490.0;330.0;10.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>470</x>
|
|
<y>650</y>
|
|
<w>400</w>
|
|
<h>100</h>
|
|
</coordinates>
|
|
<panel_attributes>*ProfileBufferControlledChunkManager::Update*
|
|
--
|
|
-mUnreleasedBytes
|
|
-mReleasedBytes
|
|
-mOldestDoneTimeStamp
|
|
-mNewReleasedChunks: ChunkMetadata[ ]</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>470</x>
|
|
<y>560</y>
|
|
<w>400</w>
|
|
<h>60</h>
|
|
</coordinates>
|
|
<panel_attributes>*ProfileBufferControlledChunkManager::ChunkMetadata*
|
|
--
|
|
-mDoneTimeStamp
|
|
-mBufferBytes</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>670</x>
|
|
<y>610</y>
|
|
<w>30</w>
|
|
<h>60</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<.</panel_attributes>
|
|
<additional_attributes>10.0;10.0;10.0;40.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>670</x>
|
|
<y>740</y>
|
|
<w>30</w>
|
|
<h>60</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<.</panel_attributes>
|
|
<additional_attributes>10.0;10.0;10.0;40.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>670</x>
|
|
<y>50</y>
|
|
<w>130</w>
|
|
<h>110</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<.</panel_attributes>
|
|
<additional_attributes>10.0;10.0;110.0;90.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>360</x>
|
|
<y>50</y>
|
|
<w>130</w>
|
|
<h>110</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<.</panel_attributes>
|
|
<additional_attributes>110.0;10.0;10.0;90.0</additional_attributes>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>400</x>
|
|
<y>130</y>
|
|
<w>350</w>
|
|
<h>100</h>
|
|
</coordinates>
|
|
<panel_attributes>*ProfileBufferChunkManagerUpdate*
|
|
bg=light_gray
|
|
--
|
|
-unreleasedBytes
|
|
-releasedBytes
|
|
-oldestDoneTimeStamp
|
|
-newlyReleasedChunks: ProfileBufferChunkMetadata[ ]</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>UMLClass</id>
|
|
<coordinates>
|
|
<x>310</x>
|
|
<y>780</y>
|
|
<w>440</w>
|
|
<h>70</h>
|
|
</coordinates>
|
|
<panel_attributes>*ProfileBufferControlledChunkManager*
|
|
--
|
|
*/+SetUpdateCallback(function<void(update: Update&&)>)/*
|
|
*/+DestroyChunksAtOrBefore(timeStamp)/*</panel_attributes>
|
|
<additional_attributes/>
|
|
</element>
|
|
<element>
|
|
<id>Relation</id>
|
|
<coordinates>
|
|
<x>480</x>
|
|
<y>840</y>
|
|
<w>30</w>
|
|
<h>80</h>
|
|
</coordinates>
|
|
<panel_attributes>lt=<<-</panel_attributes>
|
|
<additional_attributes>10.0;10.0;10.0;60.0</additional_attributes>
|
|
</element>
|
|
</diagram>
|