Jump to content

Measuring Script Lag?


garthand

Recommended Posts

So I wanted to get some thoughts on measuring the impact of the dreaded script lag. We all know what it looks like, but it would be nice if we had some way to quantitatively, (rather than qualitatively) measure it.

 

Anyone have any ideas? 

Link to comment
Share on other sites

Convenient Horses mod has builtin script latency test if that's what you want.

This is pretty much exactly what I was looking for. Thank you!

Link to comment
Share on other sites

There's also at least a couple of posts in the CK forum that have "lag tests" without having to subject the game to a mod you may or may not want to keep. I don't have the links handy though.

Link to comment
Share on other sites

You can also turn on script/stack profiling which gives you the exact millisecond timing of the Papyrus queue/push/pop operations.

 

It's hard to read though.  I started an app to read them, but never finished it:

 

WOKLwZJ.png

(I'm not sure what version of Footprints these ms numbers were from,  it may have been from some rewrite tests I was trying at the time, to see what variants were faster.)

 

 

When you enable it, they show up in <saved games folder>/Logs/Script I believe.  The script profiles are named

 

Script_<Script Name>.N

 

...and the stack profiles are named

 

Stack_<stack #>.N

 

...where N is 0,1,2,3 with 0 always being the most recent log (just like Papyrus' main log).

 

You have to use Papyrus commands in the actual script to start script profiling, in addition to using the INI options.  The functions are listed here:  http://www.creationkit.com/Debug_Script

 

Edit:  The numbers are actually the total of all the QUEUE_PUSH, PUSH, QUEUE_POP, POP  values associated with the script.  The tree expands to show the individual values, but I can't seem to find a screenshot of that.  Though here is the "flat"  table view:

 

YYwZ0P8.png

(This is essentially a prettifying of the raw logs)

 

In terms of interpreting the logs,  the more QUEUE_*  you see the worse it is (I think the screenshot above was from a stress test), because that means the script is essentially waiting to PUSH or POP.   But don't quote me on that.  I think SmkViper (or someone from Beth) had a few posts on it at the official forums. 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...