C++ Profiler
for Games.

Free for commercial use. Yes, absolutely free.
View on Github Star

Unique mixture of core features


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.

Context Switches

Track down any unexpected thread pre-emption or synchronization. Switch-contexts also provide visualization for Hardware Cores mapping.

GPU Counters

Visualize GPU counters together with CPU counters on the same timeline. Indispensable tool for tracking down CPU<=>GPU synchronization problems.

Github\Jira Integration

Integration with popular task trackers allows you to report any performance problem in your game in just one click.

One Tool for All Platforms

Windows, Linux, MacOS, XBox One, PS4

Huge power inside

Easy Integration

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.

Profiling Over The Network

Someone from your team is in trouble? Connect to his game via network. You do not need to take a walk any more.

Lightweight Overhead

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.

Fast Iterations

Allows you to check your assumptions extremely fast. Usually you won't need to build or restart your application to get everything you need.

Source Code Included

Hell yeah! That's all you need!

Context Switches

Optick uses platform-specific low-overhead API for to collect switch contexts.

Timeline control shows you precise information about your threads and can help to profile and fix synchronization bottlenecks.

You could also get a precise mapping of your functions and hardware cores.


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.

Jira\Github Integration

Integration with the most popular task trackers helps you to report performance issues in just one click.
Optick automatically attaches current performance capture to the new issue.
You could even customize it to automatically fill the most common fields.

Responsive GUI

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.

Proven in Real Conditions

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:

  • Integrated into automated testing system
  • QA department loves this tool and provides primary analysis
  • Tons of milliseconds were saved during the project