This is Part 3 of the Fast Profiling series. There are also Part 1 and Part 2.

TLDR: Use CSVtoSVG to get graphs with the comparisons, use PerfReportTool to get graphs with the costs of individual frames.

Why should you know about and use CSV tools?

Similar to my previous articles, this is a fast profiling toolset, meaning it is a quick and straightforward way to collect and visualise performance data.

The graphs that the CSV Tools spits out are useful for:

This method is relatively high-level, so unfortunately, you will not be able to pinpoint performance issues as well as you would with Unreal Insights.

I will cover two tools in this article: the CSVtoSVG tool and the PerfReport tool.

How to capture a CSV File

The tools require a CSV file to work. Luckily, it is very easy to capture, use CSVProfile Start command. You will notice the frame count on the left side of your screen; this indicates that the capturing is in progress.

image.png

Once you are satisfied with the length of capture, use CSVProfile Stop command. Note that this capture is lightweight, so you can capture as many frames as you want.

You can find your CSV file at: YourProjectName\Saved\Profiling\CSV; the CSV file name is the current date and time.

If you try opening a CSV in Excel, you will see columns named after the stats captured, and each row is a new frame. It is extremely inconvenient to read all this information; this is where CSV tools come in. It takes the data from the CSV you captured and parses it into beautiful graphs.

image.png

The tools live in your Engine folder at \UE_5.6(YourEngineVersion)\Engine\Binaries\DotNET\CsvTools. I usually copy the entire CSVTools folder to a convenient location. That way, whenever I need the tools, all the required files are already in one place, and I can drag the whole folder to the location where the CSV file is without having to dig through the Engine directory each time.