Collect detailed timing for each function marked in your code. Extremely useful for primary investigation and keeping track of performance over time.
Collect statistical data about the work that is performed by any specified scope of your application during a profiling run.
Track down any unexpected thread pre-emption or synchronization. Switch-contexts also provide visualization for Hardware Cores mapping.
Visualize GPU counters together with CPU counters on the same timeline. Indispensable tool for tracking down CPU<=>GPU synchronization problems.
Integration with popular task trackers allows you to report any performance problem in your game in just one click.
Windows, Linux, MacOS, XBox One.
One line in your code is more than enough to start.
Of course you can store all your profiling data. It's very joyful to compare timings 'before' and 'after' optimization.
Someone from your team is in trouble? Connect to his game via network. You do not need to take a walk any more.
Even a couple thousand counters will have virtually zero impact on your performance. You can even leave them in your Release build to be always ready.
Allows you to check your assumptions extremely fast. Usually you won't need to build or restart your application to get everything you need.
Hell yeah! That's all you need!
Optick comes with low-overhead sampling mode which collects a callstack from all the threads every millisecond.
You could adjust sampling frequency to get more detailed performance statistics.
Autosampling mode provides you with a complete flamegraph of the cost of any selected function.
GUI is the most important part of any profiler.
We've focused on providing extensive tool set alongside with blazing performance on big data sets.
Full power of C# and WPF helped to create a lot of iterations and find the most representative way to visualize profiling data.
The most performance-demanding controls are implemented using DirectX to get the maximum possible performance.
Started as a small tool, Optick has grown up to an everyday instrument, that helps not only to find and fix hotspots, but also to hold control over performance after any time-critical modification.
Here is a list of use cases in Skyforge: