ReftabMinimizeCache

Bei der Benutzung von Schlüsseltabellen in generierte .NET-Basisassemblies werden die Inhalte der Schlüsseltabellen für maximale Performance zwischengespeichert. Diese Zwischenspeicherung geht allerdings zu Lasten des Hauptspeichers. Vor allem in den Fällen, wo viele Schlüsseltabellen verwendet werden, oder die gleiche Schlüsseltabelle in mehreren unterschiedlichen Basisassemblies generiert wurde, kann die Speicherauslastung schon mal zum Problem werden. In solchen Fällen kann man die TAA-Infrastruktur anweisen, den Speicherplatz für den Zwischenspeicher zu Lasten von Antwortzeiten zu minimieren.

ReftabMinimizeCache.reg
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\TAA\Config]
"ReftabMinimizeCache"=hex:01
"ReftabMinimizeCacheInMemLimit"=dword:00000400

Wenn die Option ReftabMinimizeCache aktiviert ist (defaultmäßig ist diese aus) werden die Inhalte der Schlüsseltabellen nicht in .NET, sondern im unmanaged Code zwischengespeichert. Schlüsseltabellen, die den gleichen Aufbau, aber bedingt durch unterschiedliche Basisassemblies auch unterschiedliche Typen haben, teilen sich nunmehr einen gemeinsamen Zwischenspeicher. Die .NET-Daten für die verschiedenen Typen werden aus diesem Zwischenspeicher auf Anforderung aufgebaut. In der .NET-Umgebung, also in managed Code, werden die Inhalte der Schlüsseltabellen nicht mehr auf immer und ewig zwischengespeichert, sondern bei Bedarf auch wieder freigegeben um dann später, falls nötig, wieder aus der unmanaged Zwischenspeicherung wiederhergestellt zu werden.

Mit der Einstellung ReftabMinimizeCacheInMemLimit kann Einfluss darauf genommen werden, welche Schlüsseltabelleninhalte überhaupt im unmanaged Speicher vorgehalten werden. Wenn der rohe Inhalt des Zwischenspeichers für die Schlüsseltabelle den voreingestellten Wert überschreitet (standardmäßig ist hier 2048 Bytes eingetragen), wird der Zwischenspeicher der jeweiligen Tabelle nicht im Hauptspeicher verwaltet, sondern im Dateisystem.