Share

Render Statistics and Profiling - Arnold User Guide

An extensive set of tools that allow performance issues to be more easily identified and rendering processes optimized. Additional timing statistics organized by both nodes and categories can be output to HTML-based visual reports or a JSON files. This makes it possible to know which objects are most expensive to render and which parts of the renderer took the most amount of time. It also allows for detailed profiling visualizations by outputting trace information into a file, such as "my_profile.json", by calling AiProfileSetFileName("my_profile.json") or kick -profile "my_profile.json", and then loading the JSON file in Google's Chrome web browser using Perfetto or into https://www.speedscope.app/.

Render Stats Report

The Arnold Render Report is a visualization tool for reviewing statistics and rendering processes coming out of a rendered image. When requested for a render, Arnold generates a static HTML that autoloads the associated statistics when loading the file. This can be called without generating a standalone JSON statistics file.

To generate a render stats report:

  • kick -report writes a render report to specified file path (for example, to C:\arnold\stats\report.html)
  • Call AiReportSetFileName() before starting a render.

You don't need to generate the statistics separately. The render stats report automatically generates the statistics (by default, in overwrite mode), so you don't need to generate a json file separately.

Statistics

Creates a JSON object for each render pass that gets collected in the stats file, with an increasing number for each pass placed into the file (for example, "render 0000", "render 0001", and so on). So if you are in append mode, the highest-numbered render group is the most recent one.  Otherwise, in overwrite mode, the stats contain one object with the most recent pass.

To generate render statistics:

  • kick -ostatsfile write stats to the specified .json file, overwriting it if it exists
  • kick -statsfile appends stats to the specified .json file
  • Call AiStatsSetFileName() before starting a render. Use AiStatsSetMode() to choose between append mode and overwrite mode.

Profile

Profiling can be enabled, and a filename can be set.

To generate profiling data:

  • kick -profile writes profile events to the specified json file.
  • Call AiProfileSetFileName() before starting a render.

Was this information helpful?