Files
2026-07-20 12:04:14 +02:00

50 lines
11 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="600.2823px" preserveAspectRatio="none" style="width:346px;height:600px;" version="1.1" viewBox="0 0 346 600" width="346.9454px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="154.5281" x="99.1803" y="7.9418">A6 STATE — block state and heap statistics</text><ellipse cx="212.8476" cy="23.6993" fill="#000000" rx="7.4292" ry="7.4292" style="stroke: none; stroke-width: 0.742923663722561;"/><rect fill="#EDF6FA" height="37.1462" rx="9.2865" ry="9.2865" style="stroke: #2C7794; stroke-width: 1.1143854955838415;" width="37.1462" x="194.2745" y="86.8478"/><line style="stroke: #2C7794; stroke-width: 1.1143854955838415;" x1="194.2745" x2="231.4207" y1="104.3956" y2="104.3956"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="15.6014" x="205.0469" y="98.5042">Free</text><rect fill="#EDF6FA" height="37.1462" rx="9.2865" ry="9.2865" style="stroke: #2C7794; stroke-width: 1.1143854955838415;" width="48.29" x="188.7026" y="190.1142"/><line style="stroke: #2C7794; stroke-width: 1.1143854955838415;" x1="188.7026" x2="236.9926" y1="207.662" y2="207.662"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="33.4316" x="196.1318" y="201.7706">Allocated</text><rect fill="#EDF6FA" height="45.2143" rx="9.2865" ry="9.2865" style="stroke: #2C7794; stroke-width: 1.1143854955838415;" width="101.0376" x="111.0671" y="282.9796"/><line style="stroke: #2C7794; stroke-width: 1.1143854955838415;" x1="111.0671" x2="212.1047" y1="300.5275" y2="300.5275"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="43.0896" x="140.0411" y="294.6361">Fragmented</text><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="65.3773" x="114.7817" y="312.1839">03 two free blocks</text><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="86.1791" x="114.7817" y="322.3025">sum free &gt; largest block</text><rect fill="#EDF6FA" height="45.2143" rx="9.2865" ry="9.2865" style="stroke: #2C7794; stroke-width: 1.1143854955838415;" width="103.2664" x="4.4575" y="394.3142"/><line style="stroke: #2C7794; stroke-width: 1.1143854955838415;" x1="4.4575" x2="107.7239" y1="411.862" y2="411.862"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="36.4033" x="37.8891" y="405.9706">Coalesced</text><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="61.6627" x="8.1722" y="423.5185">04 one free block</text><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="88.4079" x="8.1722" y="433.6371">current free = initial free</text><rect fill="#EDF6FA" height="37.1462" rx="9.2865" ry="9.2865" style="stroke: #2C7794; stroke-width: 1.1143854955838415;" width="78.7499" x="16.7158" y="495.2478"/><line style="stroke: #2C7794; stroke-width: 1.1143854955838415;" x1="16.7158" x2="95.4657" y1="512.7956" y2="512.7956"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="48.29" x="31.9457" y="506.9042">OOMChecked</text><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="63.8914" x="20.4304" y="524.4521">NULL + hook once</text><ellipse cx="56.0907" cy="585.1415" fill="none" rx="7.4292" ry="7.4292" style="stroke: #000000; stroke-width: 0.742923663722561;"/><ellipse cx="56.4622" cy="585.513" fill="#000000" rx="4.4575" ry="4.4575" style="stroke: none; stroke-width: 0.742923663722561;"/><rect fill="#EDF6FA" height="37.1462" rx="9.2865" ry="9.2865" style="stroke: #2C7794; stroke-width: 1.1143854955838415;" width="77.2641" x="190.5599" y="398.3482"/><line style="stroke: #2C7794; stroke-width: 1.1143854955838415;" x1="190.5599" x2="267.824" y1="415.8961" y2="415.8961"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="62.4056" x="197.9892" y="410.0047">05 minimum-ever</text><!--MD5=[f16808fa220dde377303612249059854]
link *start to Free--><path d="M212.8476,31.2845 C212.8476,42.3689 212.8476,64.7384 212.8476,81.885 " fill="none" id="*start-&gt;Free" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><polygon fill="#8095A1" points="212.8476,85.4436,215.8193,78.7573,212.8476,81.729,209.8759,78.7573,212.8476,85.4436" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="57.948" x="213.5906" y="62.101">01 one list node</text><!--MD5=[19abaf48dc778410378e95e0d1bca006]
link Free to Allocated--><path d="M212.8476,124.358 C212.8476,141.3635 212.8476,166.8235 212.8476,185.1663 " fill="none" id="Free-&gt;Allocated" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><polygon fill="#8095A1" points="212.8476,188.7843,215.8193,182.098,212.8476,185.0697,209.8759,182.098,212.8476,188.7843" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="59.4339" x="224.3629" y="154.9664">02 first-fit + split</text><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="80.9787" x="213.5906" y="165.085">current free decreases</text><!--MD5=[f6fa3e1917b73de38ea03346a6903b17]
link Allocated to Fragmented--><path d="M203.0856,227.6021 C195.3518,241.9925 184.4382,262.304 175.746,278.4849 " fill="none" id="Allocated-&gt;Fragmented" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><polygon fill="#8095A1" points="174.0076,281.7241,179.7784,277.2257,175.7573,278.4473,174.5357,274.4262,174.0076,281.7241" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="43.0896" x="191.028" y="258.2328">free A and C</text><!--MD5=[c73bca393b062d6a86dff80fa900c78c]
link Fragmented to Coalesced--><path d="M110.7031,318.744 C93.6455,325.4006 76.1571,335.4523 65.0058,350.4817 C56.8188,361.5141 54.33,376.536 54.0031,389.4331 " fill="none" id="Fragmented-&gt;Coalesced" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><polygon fill="#8095A1" points="53.9808,392.9546,56.9907,386.2854,54.0021,389.24,51.0474,386.2514,53.9808,392.9546" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="21.5448" x="110.6956" y="359.1664">free B</text><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="111.4385" x="65.7487" y="369.285">address-order joins neighbours</text><!--MD5=[2b306524d92469efb3bb270d490680cf]
link Coalesced to OOMChecked--><path d="M56.0907,439.7959 C56.0907,454.8922 56.0907,474.8471 56.0907,490.1216 " fill="none" id="Coalesced-&gt;OOMChecked" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><polygon fill="#8095A1" points="56.0907,493.7842,59.0624,487.0979,56.0907,490.0696,53.119,487.0979,56.0907,493.7842" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="57.2051" x="56.8337" y="470.501">request &gt; arena</text><!--MD5=[6b8be85e17f6174335a5329fe1414850]
link OOMChecked to *end--><path d="M56.0907,532.55 C56.0907,545.306 56.0907,562.0366 56.0907,573.0022 " fill="none" id="OOMChecked-&gt;*end" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><polygon fill="#8095A1" points="56.0907,576.4716,59.0624,569.7853,56.0907,572.757,53.119,569.7853,56.0907,576.4716" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><!--MD5=[b09143a670c8c67aa163b99fca5c6b6b]
link Allocated to MIN--><path d="M228.8056,227.6169 C233.6049,234.1101 238.3299,241.7622 241.0787,249.548 C259.2432,300.9509 258.5449,318.5879 247.765,372.0264 C246.2941,379.3145 243.5824,386.8998 240.685,393.6827 " fill="none" id="Allocated-&gt;MIN" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><polygon fill="#8095A1" points="239.214,396.9813,244.6551,392.0892,240.7295,393.5899,239.2288,389.6643,239.214,396.9813" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="82.4645" x="256.1378" y="308.6996">records low watermark</text><!--MD5=[1fa23b8554d20d5dd3f2f8930c0e2df3]
link Fragmented to MIN--><path d="M172.2766,328.3871 C178.8143,341.366 187.6105,357.9332 196.5033,372.0264 C201.2283,379.5151 206.8225,387.3752 212.0378,394.3513 " fill="none" id="Fragmented-&gt;MIN" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><polygon fill="#8095A1" points="214.2072,397.2338,212.5727,390.1018,211.9784,394.2621,207.818,393.6678,214.2072,397.2338" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="46.8042" x="197.2462" y="364.3669">does not rise</text><!--MD5=[87522a40b34d64237ec6603d41372cd8]
link Coalesced to MIN--><path d="M108.0285,416.9213 C132.7679,416.9213 162.0242,416.9213 185.5972,416.9213 " fill="none" id="Coalesced-&gt;MIN" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><polygon fill="#8095A1" points="189.1038,416.9213,182.4175,413.9496,185.3892,416.9213,182.4175,419.893,189.1038,416.9213" style="stroke: #8095A1; stroke-width: 0.742923663722561;"/><text fill="#000000" font-family="Monospace" font-size="7.4292" lengthAdjust="spacingAndGlyphs" textLength="55.7193" x="121.2823" y="412.2335">history remains</text><!--MD5=[994b73c618d067de5faae1a7c19b4f86]
@startuml
scale 600 height
top to bottom direction
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName Monospace
skinparam defaultFontSize 10
skinparam stateBorderColor #2c7794
skinparam stateBackgroundColor #edf6fa
skinparam ArrowColor #8095a1
title A6 STATE — block state and heap statistics
[*] - -> Free : 01 one list node
Free - -> Allocated : 02 first-fit + split\ncurrent free decreases
Allocated - -> Fragmented : free A and C
Fragmented : 03 two free blocks
Fragmented : sum free > largest block
Fragmented - -> Coalesced : free B\naddress-order joins neighbours
Coalesced : 04 one free block
Coalesced : current free = initial free
Coalesced - -> OOMChecked : request > arena
OOMChecked : NULL + hook once
OOMChecked - -> [*]
state "05 minimum-ever" as MIN
Allocated -right-> MIN : records low watermark
Fragmented -right-> MIN : does not rise
Coalesced -right-> MIN : history remains
@enduml
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 25.0.4-ea+4-1-Debian
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: null
--></g></svg>