Skyrim:Ini-Einstellungen (Papyrus)
Papyrus hat verschiedene Einstellungen in der INI, die für einige Elemente festlegen, wie Ressource benutzt und bearbeitet werden. Diese Einstellungen finden sich in dem [Papyrus]-Abschnitt in der INI-Datei
Inhaltsverzeichnis
Voreinstellungen
Der folgende Block zeigt die Voreinstellungen der verschiedenen Einstellungen. Wenn man etwas in Unordnung gebracht hat, kann man immer noch diesen Block in die INI-Datei kopieren.
[Papyrus] fUpdateBudgetMS=1.2 fExtraTaskletBudgetMS=1.2 fPostLoadUpdateTimeMS=500.0 ;Xenon and PS3 use 2000.0 iMinMemoryPageSize=128 iMaxMemoryPageSize=512 iMaxAllocatedMemoryBytes=76800 bEnableLogging=0 bEnableTrace=0 bLoadDebugInformation=0 bEnableProfiling=0
Individuelle Einstellungen
Die meisten Einstellungen brauchen nicht geändert zu werden. Die einzigen, mit denen der Nutzer üblicherweise herumspielt, sind bEnableLogging, bEnableTrace, bLoadDebugInformation und bEnableProfiling.. Es sind jedoch der Vollständigkeit halber alle Einstellungen hier aufgelistet.
fUpdateBudgetMS
Diese Einstellung kontrolliert, wie viel Zeit die Haupschleife für das Papyrus-Udate bekommt. Diese Schleife kontrolliert vor allem die Funktions-Erledigung. Wenn viele Funktionsaufrufe gemacht werden und viele Scripts laufen, kann das Erhöhen dieses Wertes die Script-Performanz erhöhen, allerdings auf Kosten der Framerate. Die meiste Zeit würde die virtuelle Maschine (VM) nicht die ganze Zeitscheibe in Anspruch nehmen und die Steigerung des Wertes hätte keinen Effekt.
Default: 1.2
fExtraTaskletBudgetMD
Diese Einstellung kontrolliert, wie viel Zeit von anderen Spielthreads von laufenden Script-Tasklets (der Code, der den Maschinencode von Scripts laufen lässt) weggenommen wird. Diese Zeit wird der Zeit, die die Tasklets normalerweise von ihren eigenen Thread bekommen, hinzugefügt. Aber weil dieser Thread woanders mitbenutzt wird, können sie vor Hunger enden, wenn andere Systeme sehr belastet sind. Wenn das Spiel nicht belastet ist, wird diese Zeit nicht genutzt. Das Erhöhen dieses Wertes kann die Script-Performanz in Belastungssituationen auf Kosten der Framerate erhöhen.
Default: 1.2
fPostLoadUpdateTimeMS
Diese Einstellung kontrolliert, wie viel Zeit dem Ladeschirm zugefügt wird, um im Fall des Einladens einer Zelle, die sich selbst aufbaut, zusätzliche Scriptarbeit erledigen zu können. Das Anpassen der Zeit passt die sichtbare Zeit des Ladeschirms an. Auch das Anpassen dieser Einstellung wird dazu führen, dass es in der Zeit, in der Spieler lädt, nicht ganz rechtzeitig fertig wird, wenn eine Zelle sehr kompliziert gescriptet ist. Das kann auch vom Storymanager abhängen, weil Quests nicht starten, bis der Ladeschirm fertig ist, wenn sie gestartet wurden, gerade bevor der Spieler eine Ladetür betätigt hat. Wenn die Anfangsstage der Quest eine Menge Gescriptetes hat, wird eine Menge Extrazeit zum Laufen benötigt, bevor der Ladeschirm weggeht.
Default: 500.0 (on PC), 2000.0 (on Xenon and PS3)
iMinMemoryPageSize
Dies ist die kleinste Menge an Speicherplatz (in Byte), den die VM für eine einzelne Speicherseite reserviert. Kleinere Werte werden weniger Speicherplatz auf kleinen Speichern verschwenden. Größere Werte hingegen verringern die Anzahl von Reservierungen für Speicher mit vielen kleinen Frames (was die Performanz verbessert)
Max: 2147483647
Default: 128
iMaxMemoryPageSize
Dies ist die größte Menge an Speicherplatz (in Byte), den die VM für eine einzelne Speicherseite reserviert. Kleinere Werte können die VM zwingen, mehr Seiten für große Stack-Frames zur Verfügung zu stellen. Größere Werte können dazu führen, das der Speicherzuweiser unterschiedlich zuweist, mit abnehmender Performanz für große Stack-Frames .
Max: 2147483647
Default: 512
iMaxAllocatedMemoryBytes
Dies ist die größte Menge an Speicherplatz (in Byte), den die VM insgesamt für die Stack-Frames reserviert. Wenn eine Zuweisung die Speichernutzung über diese Grenze schiebt, wird die VM stattdessen auf mehr freigegebenen Speicher warten. Das Erniedrigen dieses Wertes kann die Performanz in Situationen mit starker Belastung mit vielen laufenden Scripts verbessern, es verbraucht aber mehr Speicherplatz. Beachte dass es möglich ist, diesen Wert zeitweise zu überschreiten, indem man eine Savegame mit einer etwas anderen Zuweisungsreihenfolge lädt.
Max: 2147483647 (2GB) Default: 76800 (75kb)
WARNUNG: Das Erhöhen von iMaxAllocatedMemoryBytes auf Werte größer als der Default kann zu Thrashing führen (stack buffer overflows). Das Thrashing erzeugt Stack-Dumps im Papyrus-Log, vergleichbar dem Beispiel unten. Der Dump kann sehr groß sein, wenn viele Scripts laufen und eine sehr große Logdatei erzeugen.
[03/30/2013 - 12:21:08PM] Suspended stack count is over our warning threshold, dumping stacks: [03/30/2013 - 12:21:08PM] VM is freezing... [03/30/2013 - 12:21:08PM] VM is frozen [03/30/2013 - 12:21:08PM] Dumping stack 137790: [03/30/2013 - 12:21:08PM] Frame count: 0 (Page count: 0) [03/30/2013 - 12:21:08PM] State: Running (Freeze state: Freezing) [03/30/2013 - 12:21:08PM] Type: Normal [03/30/2013 - 12:21:08PM] Return register: None [03/30/2013 - 12:21:08PM] Has stack callback: No [03/30/2013 - 12:21:08PM] Stack trace: [03/30/2013 - 12:21:08PM] [ (0010DCE8)].mineorefurniturescript.OnLoad() - (requested call)
bEnableLogging
Diese Einstellung stellt das Log an oder aus. Wenn aus wird kein Loggen stattfinden nicht einmal Traces. Es wird der Wert für bEnableTrace überschrieben. Die Ingame-Anzeige arbeitet, es wird jedoch nichts auf den Speicher geschrieben. Wenn ausgestellt verbessert das aufgrund der geringeren Speicheraktivität die Performanz.
Default: 0
bEnableTrace
Diese Einstellung stellt die Trace-Kommandos der Scripts an oder aus. Systemfehler und Warnungsmeldungen werden weiter auf den Speicher geschrieben. Wenn bEnableLogging false gesetzt ist, wird diese Einstellung ignoriert und es wird überhaupt nichts mehr auf die Platte geschrieben. Trace-Kommandos sind in der Anzeige des Spielelogs nicht sichtbar, wenn diese Einstellung aus ist. Das Ausstellen kann die Performanz wegen der geringeren Speicheraktivität steigern. Default: 0
bLoadDebugInformation
Diese Einstellung stellt das Laden von zusätzlicher Debug-Information an oder aus – hauptsächlich die Zeilennummer-Information. Wenn diese Einstellung aus ist, können Fehlermeldungen keine Zeilennummer-Daten generieren. Das Anstellen gestattet es, dass Zeilennummern in den Fehler-Traces auf Kosten einer höheren Speichernutzung verfügbar sind.
Default: 0
bEnableProfiling
Diese Einstellung stellt den Script-Profiler an oder aus. Wenn ausgestellt ist keines der Scriptprofiling-Kommandos verfügbar. Das Anstellen ermöglicht es, Profiling-Information zu kontrollieren und zu loggen. (Wenn angestellt, ist die Script-Performanz etwas geringer) Default: 0
uTraceStatusOfQuest
Diese Einstellung setzt eine Quest durch die Form-ID (umgewandelt in Dezimal) um Scriptänderungen zu verfolgen. Die Quest, die durch diese Einstellung bestimmt ist, gibt ein Papyrus-Stacktrace jedes Mal an das Log aus, wenn ein Papyrusscript versucht, etwas zu ändern wie Starten, Beenden, Setzen einer Stage oder Zeigen eines Ziels.
Default: 0
Links
- INI_Settings_(Papyrus) (das englische Original des obigen Artikels)