This article will guide you on the steps needed to log data into Statoscope.
Enabling data groups does impact on performance, especially if you enable everything all at once.
Only select the data groups that you want to display, this reduces the impact of logging data to Statoscope.
Chapters:
Two CVar's need to be set in the Launcher or Editor to enable logging: e_StatoscopeLogDestination and e_StatoscopeDataGroups
This controls where to log to:
0 - File - saves a log to the root/statoscope folder. On 360 this will be on your dev/testkit.
1 - Socket - the tool connects directly to the game.
This controls what data to log. It's an upper and lower case bitfield CVar, so you can do things like e_StatoscopeDataGroups fg, e_StatoscopeDataGroups A+, e_StatoscopeDataGroups g- to get the equivalent of e_StatoscopeDataGroups fA.
Obviously adding and removing groups like this is most useful at run time in the console.
To add data groups at run-time use the + sign:
To remove data groups at run-time use the – sign:
For a list of available data groups see Statoscope - Data Groups or search in Visual Studio for 'public IStatoscopeDataGroup'
you should be able to find them all.
The defaults are set to upload some basic data which is useful for QA play-throughs and net tests.
If you just want to record some data to see how your game is performing, then the best setup is usually socket logging as this gives you a live update in the tool and avoids the hassle of managing log files.
If you want to log QA sessions or compare time demo runs, then file logging is preferable.
These are collections of stats. So for instance, the streaming audio data group ('a') records both actual and requested audio bandwidth. It is not possible to split data groups - in that case you get both stats or neither.
Which data groups you enable will of course depend on what data you are interested in. Many are self explanatory, but it may be worth looking at the implementation of the appropriate IStatoscopeDataGroup class.
See Creating new data groups for more details on how data groups work in code.
The 'r' data group records function profiler data - the same stats that "profile 1" displays (this was initially implemented to find large single frame spikes). To keep log size down some CVars have been added that control which functions are recorded:
If you are looking for data outside of the main thread, then set profile_allthreads 1. Statoscope supports filtering by thread and module, both in the interface, after capturing the log and during logging. To filter at logging time, then use profile_filter and profile_filter_thread