Difference between revisions of "StartScriptProfiling - Debug"

From the CreationKit Wiki
Jump to navigation Jump to search
imported>JLundin
imported>Perdev
Line 25: Line 25:
== Notes ==
== Notes ==
Profiling requires the "bEnableProfiling" flag in the "[Papyrus]" section of the ini file to be set to 1. Consoles will never profile in release final builds.
Profiling requires the "bEnableProfiling" flag in the "[Papyrus]" section of the ini file to be set to 1. Consoles will never profile in release final builds.
=== Identifying latent functions ===
It is possible to use this method to determine whether a function is [[:Category:Latent Functions|latent]] or not. For example in the following output we can see that the [[AddSpell - Actor]] function's call triggers a QUEUE_PUSH. This is because it is a latent function. On the hand, [[Trace - Debug|Debug.Trace]] does not trigger this instruction because it is not latent.
<pre>
26473:START:76
26473:POP:76:1:None:Debug..StartStackProfiling
26473:PUSH:76:1:MyTestQuest (0B000D62):MyTestScript2..SomeCall
26473:PUSH:76:2:None:Debug..Trace
26473:POP:76:2:None:Debug..Trace
26473:QUEUE_PUSH:76:2:None:Game.??.getplayer
26955:PUSH:76:2:None:Game..getplayer
26955:POP:76:2:None:Game..getplayer
</pre>


== See Also ==
== See Also ==
*[[Debug Script]]
*[[Debug Script]]
*[[StopScriptProfiling - Debug]]
*[[StopScriptProfiling - Debug]]

Revision as of 23:19, 5 October 2012

Member of: Debug Script

Starts profiling a single Papyrus script. Child and parent scripts are not profiled. The profile files are stored in "<game folder>/Logs/Script/Profiling". This will also cycle the older profiling logs (so log 0 becomes 1, 1 becomes 2, etc). If the script is already profiled nothing will change. Profiling requests are not saved and will be reset if you load a save game.

Syntax

Function StartScriptProfiling(string asScriptName) native global

Parameters

  • asScriptName: The name of the script to start profiling.

Return Value

None.

Examples

; Starts profiling "MySlowScript"
Debug.StartScriptProfiling("MySlowScript")

Notes

Profiling requires the "bEnableProfiling" flag in the "[Papyrus]" section of the ini file to be set to 1. Consoles will never profile in release final builds.

Identifying latent functions

It is possible to use this method to determine whether a function is latent or not. For example in the following output we can see that the AddSpell - Actor function's call triggers a QUEUE_PUSH. This is because it is a latent function. On the hand, Debug.Trace does not trigger this instruction because it is not latent.

26473:START:76
26473:POP:76:1:None:Debug..StartStackProfiling
26473:PUSH:76:1:MyTestQuest (0B000D62):MyTestScript2..SomeCall
26473:PUSH:76:2:None:Debug..Trace
26473:POP:76:2:None:Debug..Trace
26473:QUEUE_PUSH:76:2:None:Game.??.getplayer
26955:PUSH:76:2:None:Game..getplayer
26955:POP:76:2:None:Game..getplayer

See Also