Skyrim:Ini-Einstellungen (Papyrus)

Aus Skript-Wiki
Version vom 8. April 2013, 13:23 Uhr von Keris (Diskussion | Beiträge) (Die Seite wurde neu angelegt: Papyrus hat verschiedene Einstellungen in der INI, die für einige Elemente festlegen, wie Ressource benutzt und bearbeitet werden. Diese Einstellungen finden sich in d...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

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


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. Den Byte Code laufen lässt 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