-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Peter edited this page Feb 3, 2024
·
2 revisions
Welcome to the S&box Performance Tracing wiki!
using PerformanceTracing;
using PerformanceTracing.Traces;
// Optional to customize your storage provider.
var options = new JsonSerializerOptions
{
WriteIndented = true
};
var provider = new JsonStorageProvider( options );
// Start a new trace.
Tracing.Start( TracingOptions.Default
.WithAppendStackTrace( true ) // Whether or not to add the stack traces to all events.
.WithAppendCallerPath( true ) // Whether or not to append the calling methods file and line location to events.
.WithUseSimpleNames( false ) // Whether or not basic method names should be converted to their fully qualified name.
.WithMaxConcurrentTraces( TraceType.Performance, 100 ) // Limits the number of traces of a specific type to exist at once.
.WithStorageProvider( provider ) // Sets a custom storage provider to use. Defaults to JsonStorageProvider.
);
// Stop any existing trace.
Tracing.Stop();
// Embeds metadata to the trace.
Tracing.AddMetaData( "game", "Grubs" );
// Built-in saving methods.
Tracing.CopyToClipboard() // Copies all data to your clipboard.
Tracing.SaveToFile( "trace.json", FileSystem.Data ); // Saves all data to a file on the system.
var memoryStream = Tracing.GetStream() // Gets a stream of the trace data for you to use however you want.
//
// Trace Usage
//
// Performance trace.
{
using var _ = PerformanceTrace.New(); // Tracks the duration taken inside the given block of code.
// Your code...
}
// Counter trace.
var counter = CounterTrace.New( "Some Variable", 0 ); // Sends events when changes are made.
for ( var i = 1; i <= 10; i++ )
counter.Update( i );
// Marker trace.
MarkerTrace.New( "Game has started" ); // Marks a point in time that something has occurred.