Testing Script CPU Usage

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search

There are two sections on the wiki dedicated to testing CPU Usage:

If you would like to contribute, create 2 new items. One will keep track of your FPS, the other will test the function. On the first item add this script:

scn aaaFPSTrackerScript

short Counter
float Timer

begin GameMode
  if (Counter <= 100)
    set Counter to (Counter + 1)
    set Timer to (Timer + GetSecondsPassed)
  else
    set Timer to (100 / Timer)
    message "FPS was %.2f", Timer
    RemoveMe
  endif
end

and this script to the test item:

scn aaaTestItemScript

begin GameMode
  ;Tested function
end

Write down the FormIDs of the items. Save and activate the mod. In game, add the items to the player by opening the console (default ~), and typing in player.AddItem YourItem # and pressing <Enter>, where YourItem is the FormID of your item, and # is the number of items to add.

Find a quiet spot in game to test: No NPCs roaming around, no sparkling Ayleid wells nearby, etc. Start the debug mode by opening the console, and typing in TDT. The number in the upper-right is your FPS. Try to find a place to look where your FPS is stable. Looking straight up into the sky seems to be the best, but make sure you aren't hitting the max FPS (60). Keep an eye on it in case it suddenly drops, but you'll be using the tracker item for a more precise calculation.

Start out by finding the base (or control) FPS. Add only the tracker item through the console (player.AddItem YourTrackerItem 1) and write down the FPS. Then add both the tracker and a single test item (don't leave the console in-between adding the two), write down the message, and remove the test items (player.RemoveItem YourTestItem #). Continue alternating between the two tests, and mix up how many test items you add.

Here's an easier way to do the tests above. Note that it will automatically alternate tests for you, and you can set NumTestItems to however many you would like to test through the console (set YourQuest.NumTestItems to #). Add this script to a quest, and start it through the console (StartQuest YourQuest).

scn aaaTesterScript

short NumTestItems
short Testing
short ItemCount
float fQuestDelayTime

begin GameMode
  set fQuestDelayTime to .01 ;so you don't have to wait
  set ItemCount to (player.GetItemCount YourTestItem)
  if ItemCount
    player.RemoveItem YourTestItem ItemCount
  endif
  if (Testing == 0) ;Control tests
    player.AddItem YourTrackerItem 1
    set Testing to 1
  else
    player.AddItem YourTrackerItem 1
    player.AddItem YourTestItem NumTestItems
    set Testing to 0
  endif
  StopQuest YourQuest
end

Finally, post them on the wiki!