CX_OBJECT_MANAGER::AnalyzeSegmentLayout
212705
Beschreibung:
Diese Methode liefert für das gegebene Segment eine Auswertung über alle Cluster. Mit Hilfe dieser Methode kann eine Aufstellung der Objekttypen der einzelnen Cluster und der eingenommenen Größen erstellt werden. Die Methode wurde eingeführt, um eine Abschätzung treffen zu können, wie viel Speicher gewonnen werden kann, wenn die Slots von Container-Objekten (CX_CONTAINER & CX_EXPANDABLE) in ein anderes Cluster verschoben werden, um das Überlaufen von Clustern zu verhindern.
Das Zurückgegebene JSON hat folgende Struktur:
{ clusterNr: { "totalSize":... // Gesamtgröße des Clusters (bytes) "containers": { // Anzahl und Gesamtgröße der CX_CONTAINER & CX_EXPANDABLE Objekte "count":..., "size":... }, "otherObjects": { // Restliche von CX_CLASS abgeleitete Objekte in diesem Cluster (die Slot-Werte werden hierfür nicht gezählt) "count":..., "size":... }, "sameCluster": { "slots": { // Slots, die im gleichen Cluster allokiert sind "count":..., "size":... }, "values": { // Slotwerte, die dem Slot gehören und im gleichen Cluster allokiert sind "count":..., "size":... } }, "otherCluster": { "slots": { // Slots, die in einem anderen Cluster allokiert sind "count":..., "size":... }, "values": { // Slotwerte, die dem Slot gehören und in einem anderen Cluster allokiert sind "count":..., "size":... } }, "slotValueTypes": { // Auflistung aller Slotwert-Typen typName:{ "count":..., "size":... }, ... } }, ... }
Code-Beispiel:
Var(json)
1 38 GetManager(OBJECT) Call(AnalyzeSegmentLayout) -> json // {"totalSize": ..., ...}
1 38 GetManager(OBJECT) Call(AnalyzeSegmentLayout) -> json // {"totalSize": ..., ...}
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_OBJECT_MANAGER | - |
Top-1 | INTEGER | Segmentnummer | |
Top-2 | INTEGER | Datenbanknummer | |
Stack(Out) | Top | CX_JSON_OBJECT | Zusammenfassung der Segmentbelegung |