Read the Profiler status

Performance & Content Best Practices — Spatial Streaming for Omniverse Digital Twins Workflows

Hello, I would like to ask how to use Python to read the values of profiler parameters (such as RTX Rendering, DLSS, and other values that affect GPU performance) and calculate their averages.

Thank you for posting this. To read and average profiler parameters like RTX Rendering, DLSS, and other GPU-affecting values in Isaac Sim using Python, use the relevant APIs and configuration utilities, depending on what is exposed in Isaac Sim’s Python scripting environment. Direct interaction with specific profiler metrics (like RTX, DLSS) is typically handled through configuration classes and console statistics, but Isaac Sim’s Python API most often allows you to query overall simulation or rendering statistics programmatically.

Accessing Rendering/Profiler Parameters in Python

  • Rendering settings such as RTX and DLSS are accessed and modified using configuration classes (e.g., RenderCfg in Isaac Lab) that allow you to set and query settings for the rendering backend, DLSS, and similar features.[1][2]
  • You can collect general simulation statistics, such as FPS and GPU memory usage, by using the relevant Python APIs or by accessing statistics published by the Omniverse rendering engine.[3][4]

Example: Querying and Averaging Profiler Statistics

Below are steps and sample code snippets for querying and averaging such parameters in Isaac Sim:

1. Access Rendering Configuration (including DLSS/RTX)

For values you set programmatically (example for Isaac Lab/Isaac Sim 4.x/5.x):

from isaaclab.sim import RenderCfg

render_cfg = RenderCfg(
    rendering_mode="performance",
    enable_translucency=True,
    enable_reflections=True,
    dlss_mode="3"
)

print(render_cfg.dlss_mode)  # Get current DLSS mode

This only shows what’s set. To monitor actual GPU performance metrics, see below.

2. Gather GPU/Simulation Stats Exposed by Isaac Sim

Retrieve stats such as FPS and frame time:

from omni.kit.app import get_app

app = get_app()
fps_list = []
for _ in range(100):  # Example: run for 100 frames
    fps = app.get_renderer_stats().fps
    fps_list.append(fps)
    
mean_fps = sum(fps_list) / len(fps_list)
print("Average FPS:", mean_fps)

Note: The actual API may use slightly different fields (e.g., .fps, .gpu_time, etc.), check the output of get_renderer_stats() for available attributes.[5][6]


  1. Configuring Rendering Settings — Isaac Lab Documentation ↩︎

  2. isaaclab.sim — Isaac Lab Documentation ↩︎

  3. How can i get the simulation statistics with python ↩︎

  4. How to get current FPS by python scripting in Isaac sim? ↩︎

  5. How to get current FPS by python scripting in Isaac sim? ↩︎

  6. ↩︎

Hello, thank you very much for responding to my question.

I really appreciate it, but unfortunately, my environment today is Isaac Sim 4.5 and USD Composer 107.3.

When I ran the code below today, I always get the error: AttributeError: ‘omni.kit.app._app.IApp’ object has no attribute ‘get_renderer_stats’.

Could you please let me know if there is any way for me to get the result I want?

Thank you.

Thank you for following up. It seems Isaac Sim no longer exposes get_renderer_stats() on the Kit app; the supported way to get FPS and frame times in current Isaac Sim (4.x/5.x) is to use the isaacsim.benchmark.services extension, which records frametime and computes FPS in a documented way.[1]

Using Benchmark Services to get FPS

Enable the extension isaacsim.benchmark.services (it is listed under “Benchmark Services” in the official Extensions API).[2]

Then in a standalone or scripted run, wrap your simulation code like this:

from isaacsim.benchmark.services import BaseIsaacBenchmark
from omni.isaac.kit import SimulationApp

# Launch Isaac Sim (headless or not)
simulation_app = SimulationApp({"headless": False})

# Import core sim APIs after SimulationApp is created
from omni.isaac.core import World

# Create benchmark object (documented in isaacsim.benchmark.services)[web:21]
benchmark = BaseIsaacBenchmark(
    benchmark_name="MySimFPSBenchmark",
    backend_type="OmniPerfKPIFile",   # default backend in docs[web:21]
    report_generation=False,
)

# Phase 1: loading / setup
benchmark.set_phase("loading")
world = World()
world.reset()
benchmark.store_measurements()        # stores frametime/runtime for "loading"[web:21]

# Phase 2: benchmark – run N frames
benchmark.set_phase("benchmark")      # starts frametime + runtime recording[web:21]

num_frames = 100
for _ in range(num_frames):
    world.step(render=True)

benchmark.store_measurements()        # stops recording and writes raw metrics[web:21]
benchmark.stop()

simulation_app.close()

  1. [isaacsim.benchmark.services] Benchmark Services — Isaac Sim ↩︎

  2. [isaacsim.benchmark.services] Benchmark Services — Isaac Sim ↩︎

Hi Phennigs!
Thank you for your reply.

Unfortunately, today when I was using Composer and Isaac Sim 4.5, I encountered the issue shown in the screenshot.

It seems that this package is no longer supported.

If there are any other solutions to resolve this?

Thank you.