Difference between revisions of "StartScriptProfiling - Debug"
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