Ändern der Größe des KachelpoolsTile pool resizing

Ändern der Größe eines Kachelpools zum Vergrößern eines Kachelpools, wenn die Anwendung mehr Arbeit der Streaming-Ressourcen benötigt, welche in diese zuordnen, bzw. zum Verkleinern des Kachelpools, wenn weniger Speicherplatz benötigt wird.Resize a tile pool to grow a tile pool if the application needs more working set for the streaming resources mapping into it, or to shrink if less space is needed. Eine weitere Anwendungsmöglichkeit ist die Zuordnung zusätzlicher Kachelpools für neue Streamingressourcen.Another option for applications is to allocate additional tile pools for new streaming resources. Wenn jedoch eine einzelne Streamingressource mehr Speicherplatz benötigt als anfangs im Kachelpool verfügbar ist, dann ist die Vergrößerung des Kachelpools eine gute Wahl.But if any single streaming resource needs more space than initially available in its tile pool, growing the tile pool is a good option. Eine Streamingressource kann nicht Zuordnungen in mehreren Kachel Pools gleichzeitig haben.A streaming resource can't have mappings into multiple tile pools at the same time.

Wenn ein Kachelpool vergrößert wurde, werden weitere Kacheln durch den Anzeigetreiber am Ende über eine oder mehrere neue Vergaben hinzugefügt.When a tile pool is grown, additional tiles are added to the end via one or more new allocations by the display driver. Diese Aufschlüsselung der Vergaben ist in der Anwendung nicht sichtbar.This breakdown into allocations isn't visible to the application. Vorhandener Speicher im Kachelpool bleibt unverändert, und vorhandene Zuordnungen der Streamingressourcen im Arbeitsspeicher bleiben erhalten.Existing memory in the tile pool is left untouched, and existing streaming resource mappings into that memory remain intact.

Wenn ein Kachelpool verkleinert wird, werden die Kacheln ab dem Ende entfernt.When a tile pool is shrunk, tiles are removed from the end. Kacheln werden auch bis auf 0, d. h. bis auf die ursprüngliche Vergabegröße, entfernt. Das bedeutet, dass über die neue Größe hinaus keine neuen Zuordnungen hergestellt werden können.Tiles are removed even below the initial allocation size, down to 0, which means new mappings can't be made past the new size. Bestehende Zuordnung über das Ende der neuen Größe hinaus bleiben jedoch unverändert und verwendbar.But, existing mappings past the end of the new size remain intact and useable. Der Anzeigetreiber wird den Arbeitsspeicher behalten, so lange Zuordnungen zu einem Teil der Vergaben, die der Treiber für die Kachelpoolspeicher verwendet, bestehen.The display driver will keep the memory around as long as mappings to any part of the allocations that the driver uses for the tile pool memory remains. Wenn nach dem Verkleinern ein Teil des Speichers aktiv gehalten wird, da Kachelzuordnungen darauf zeigen und der Kachelpool erneut (mit beliebiger Menge) vergrößert wurde, wird der vorhandene Arbeitsspeicher zunächst wiederverwendet, bevor jegliche zusätzlichen Vergaben für den Vergrößerungsvorgang erfolgen.If after shrinking some memory has been kept alive because tile mappings are pointing to it and then the tile pool is regrown again (by any amount), the existing memory is reused first before any additional allocations occur to service the size of the grow operation.

Um Speicherplatz sparen zu können, muss eine Anwendung nicht nur einen Kachelpool verkleinern, sondern auch bestehende Zuordnungen über dem Ende der neuen, kleineren Kachelpoolgröße hinaus entfernen/erneut zuordnen.To be able to save memory, an application has to not only shrink a tile pool but also remove/remap existing mappings past the end of the new smaller tile pool size.

Der Vorgang zur Verkleinerung (und Entfernen von Zuordnungen) resultiert nicht unbedingt sofort in Arbeitsspeichereinsparungen.The act of shrinking (and removing mappings) doesn't necessarily produce immediate memory savings. Das Freigeben von Arbeitsspeicher hängt davon ab, wie präzise die dem Anzeigetreiber zugrunde liegenden Freigaben für den Kachelpool sind.Freeing of memory depends on how granular the display driver's underlying allocations for the tile pool are. Wenn die Verkleinerung dafür ausreicht, die Vergabe des Anzeigetreibers überflüssig zu machen, kann der Anzeigetreiber sie freigeben.When shrinking happens to be enough to make a display driver allocation unused, the display driver can free it. Wurde ein Kachel-Pool vergrößert, ist das Verkleinern auf bisherige Größen (und das entsprechende Entfernen/Neuzuordnen der Kachelzuordnungen) die beste Option, um Arbeitsspeicher einzusparen. Dies ist jedoch nicht gewährleistet, falls die Größen nicht genau mit den zugrunde liegenden und vom Anzeigetreiber ausgewählten Vergabegrößen übereinstimmen.If a tile pool was grown, shrinking to previous sizes (and removing/remapping tile mappings correspondingly) is most likely to yield memory savings, though not guaranteed in the case that the sizes don't exactly align with the underlying allocation sizes chosen by the display driver.

Verwandte ThemenRelated topics

Zuordnungen sind in einem Pool für die Kachel "Mappings are into a tile pool