- 23 Oct 2024
- 5 Minutes to read
- Print
- DarkLight
- PDF
Performance (7)
- Updated on 23 Oct 2024
- 5 Minutes to read
- Print
- DarkLight
- PDF
You will find the Performance section on the right side of the Scene view window. Here, you find information on processing time (the time it takes for Composer to render one frame), uptime, errors and warnings since the application started, etc. The most important thing to keep track of (from a performance perspective) is the processing time. Other KPIs:s and functions are more useful when debugging or tracking down issues.
The performance of Composer is dependent on the server hardware. Find more information about tuning your server.
Framerate
In the center of the circle, you set the frame rate (FPS) of your setup. Frame rate (expressed in frames per second or FPS) is the frequency (rate) at which consecutive images called frames appear on display. The term applies equally to film and video cameras, computer graphics, and motion capture systems. Frame rate affects the processing rate as well as the frame rate of most target components such as the RTMP target.
A recommendation is to use the same frame rate as your input sources (cameras etc.). Ideally, all inputs should run at the same frame rate as the frame rate of Composer. However, there are many scenarios where you want to limit the FPS to a lower setting. If you target a 25 FPS RTMP stream, you should set the FPS to 25 regardless of the FPS of the inputs.
The available processing time for each frame is dependent on the framerate. A setup running at 50 FPS has 1/50 of a second available for processing (=20ms), while a setup running at 25 FPS has 1/25 of a second available (=40 ms). Using higher frame rates requires more GPU power compared to lower frame rates. The most common frame rates are 50, 29.97, and 25 FPS.
Every section can be collapsed.
Live Preview
The Live Preview section is only available if enabled in Settings.
With Live preview it is possible to share a live stream of the Scene view using Vindral CDN. When enabled, a section for Live Preview will be visible under the Performance panel. The Live preview is not intended for broadcasting to an audience. Instead, use the RTMP target when broadcasting to your viewers. The Live Preview is a quick way to share internally, with a limit of 10 simultaneous viewers.
Click "Start" to start the Live Broadcast. The "View in Browser" will open up Vindrals QoS player where you can watch the live stream. This url can be shared internally so others can view the Live Preview.
Performance
Below the FPS dropdown, you will see the current processing time (in ms) and an average processing time over the last 10,000 frames. The nominal value represents the number of milliseconds available when rendering a single frame. We recommend that your processing time should not exceed 80-90% of the nominal time. More information on performance can be found in the Performance and Optimization chapter.
Project Statistics
- Project: Filename of the current running project. If the running project is stored in the Projects folder, the information will only contain the filename (not the full file path).
- Worker queue size: Number of frames in the internal processing buffer. Usually, this should be 0 or close to 0.
- Congestions: The number of times when the worker queue has exceeded 50 (default, or the value set under “Max Processing Cue Size” in Settings), and the system is considered congestive. When a congestive state occurs, the system will flush the worker queue.
- Worker queue flushes: The total number of queue flushes since the application was started
- CPU usage: Current CPU Utilization.
- RAM Usage: Current memory utilization
- GPU Power usage: Current power utilization
- GPU Power usage: Current Power consumption of the GPU
- GPU Power Management: Nvidia "Prefer maximum Performance" enabled
- GPU Power State (0-8): In what Power state is the GPU running in. (0 = fastest, 8 = slowest)
- GPU Utilization: Current GPU Utilization. (This is dependent on the GPU Power state)
- NVENC Utilization: NVENC utilization (Nvidia encoding)
- NVDEC Utilization: NVDEC utilization(Nvidia decoding)
- GPU Memory (Total/Used/Free): Show GPU memory usage: total, used, free
- Application started: Date/time for application start
- Session started: Date/time for session start
- Session uptime: Uptime since the application was started
- Reported errors: Total errors since the application was started.
- Last error: Date/time and message of the latest error
- Reported warnings: Total warnings since the application was started.
- Last warning: Date/time and message of the latest warning.
- Alarm activated: Date/time when the last alarm was triggered.
- Alarm counter: Number of alarms triggered.
- Alarm cleared: Date/time when last alarm was cleared.
- Alarm active: The alarm has been triggered. Press the button to clear the alarm manually. The alarm will be automatically cleared after the configured time (configured in Settings/Alarms).
- Authorized Api calls: The number of authorized (accepted) Api calls
- Last authorized Api call: Date/time of the last API call
- Script engine: Status of the script engine.
- Script: Filename of the script that is running.
- Execution time: Time to execute the script in ticks and ms.
Options
- Autostart inputs - enable this option to automatically start all inputs when the application is started (or project loaded). In most production scenarios, this option should be enabled.
- Autostart targets - enable this option to automatically start all targets when the application is started (or project loaded). In most production scenarios, this option should be enabled.
* Hidden properties, only possible to change by editing the project fil (.prj). (<LogPerformance> and <UseExtendedLogging>) - Log performance* - Logging performance enabled. Default enabled
Example:
[2023-09-13 10:33:46.651 [Information] [2500] [SystemLabel ] PerformanceLog {"congestionsLastSecond": "0", "processingQueue": "0", "numWorkerQueueFlushesSinceStart": "0", "uptime": "0.00:00:19:300", "avgProcessingTime": "7,8", "maxProcessingTime": "21,3", "avgProcessingTimeUsage": "23,4", "avgProcessingTime10k": "11,0", "avgProcessingTimeUsage10kUsage": "33,0", "congestiveFrames": "0", "processRAMUsageGB": "0,74508667", "processRAMUsageGBAvg10min": "1,348", "processRAMUsageGBMax10min": "1,372", "processRAMUsageGBMin10min": "1,306","runTimeState": "Idle", "gpuRAMUsed": "1,597/11,994", "gpuPowerDrawPercentage": "15", "gpuPowerDraw": "35", "gpuPowerDrawLimit": "200", "gpuPowerState": "2", "gpuPowerManagement": "True", "gpuName": "NVIDIA GeForce RTX 4070", "gpuUtilization": "20", "gpuEncoderUtilization": "0", "gpuDecoderUtilization": "0", "cpuUtilization": "3"} ] - Use extended logging* - Enable this option to enable extended logging.
This option is useful for getting information about RTMP input and targets.
Example:
[2023-09-12 11:53:12.239 [Information] [2055] [SystemLabel] TargetStatistics {"GetStatistics": "", "Name": "RTMP Target", "ConnectionStatus": "Connected", "UpTimeSinceStartTimeSpan": "00:00:18.9664998", "CurrentRTMPEndPoint": "rtmp://myrtmpingesturl.com/live/mystream", "OutgoingBitRateMbitPerSecond": "1.118671", "NumAutoReconnectsperformed": "0", "AverageVideoEncoderTimeMs": "6.6467999999986205", "MaxVideoEncoderTimeMS": "19.94959999999992", "AverageNetworkWriteTimeMs": "0.09729999999763095", "OutputQueueSize": "0", "ErrorCount": "0", "LastErrorDateTime": "", "WarningCount": "0", "LastWarningDateTime": "", "VideoFramesWritten": "569", "AudioFramesWritten": "889"}
Performance actions (buttons)
There are six buttons in the Performance section:
- Open log window - opens the log window :)
- Save a snapshot of the application state - All properties displayed in the GUI are saved to an XML file in the root folder of the application. The file will be named “Properties_Snapshot”_dateandtime.xml. Useful for debugging scenarios where the support team needs more information on the application state.
- Set congestive* - For debugging/testing only - Simulate max congestion in the project, which will force an auto restart. *
- Trigger Error* - triggers an error. *
- Trigger Warning* - triggers a warning. *
- Trigger Fatal* - triggers a warning. *
* Only visible if “Enable debug features” is enabled in Settings.