Export Profiler Information

Hi, I’m looking to simply export profiler information for a selected frame to a readable format. That could just be a simple text file which I could copy and paste from. I came some scripts for sampling the profiler from the Unity documentation, but is there a simple solution already built in that I am just missing?

I have looked on the Forums a few times and haven’t found what I was looking for, if this has already been answered can you point me to the relevant thread?

Thank you!

With a look into the ProfilerWindow class on the decompiled unity code (which you may find online) you can easily write a script that exports the data you need.

The script might look like this

using UnityEditor;
using UnityEditorInternal;

var firstFrameIndex = ProfilerDriver.firstFrameIndex;
var lastFrameIndex = ProfilerDriver.lastFrameIndex;
var profilerSortColumn = ProfilerColumn.TotalTime;
var viewType = ProfilerViewType.Hierarchy;

var profilerData = new ProfilerData();
for (int frameIndex = firstFrameIndex; frameIndex <= lastFrameIndex; ++frameIndex)
{
    var property = new ProfilerProperty();
    property.SetRoot(frameIndex, profilerSortColumn, viewType);
    property.onlyShowGPUSamples = false;
    bool enterChildren = true;

    while (property.Next(enterChildren))
    {
         // get all the desired ProfilerColumn
         var name = property.GetColumn(ProfilerColumn.FunctionName);
         var totalTime = property.GetColumn(ProfilerColumn.TotalTime);
         // store values somewhere
    }

    property.Cleanup();
}

If you want, you can use this script that allows you to export the data as a JSON file and provides also some useful stats when you are profiling.