The performance monitor is a profiler that records events and generates statistical reports for Houdini objects, such as nodes, viewports, scripts. The monitor can help identify performance bottlenecks in your scene.
A profile is a statistical snapshot of your scene. It stores the performance data for each profiled object in Houdini.
Create a new profile
Start a new recording by clicking in the toolbar. This puts the performance monitor in a listening state, so that it records events that take place in Houdini.
Perform actions in Houdini that will trigger events such as cooking and drawing.
Click the button to stop the recording and generate a new profile from the recorded events.
You can turn on Live Updates in the Sample menu to see updated statistics during your recording session.
The statistics viewer shows a breakdown of your profile.
Profiled objects are listed on the left-hand-side of the viewer and are organized by nodes, viewports, and other objects. Performance statistics appear on the right side of the viewer for each profiled object in the list.
Statistics are categorized into three groups. You can change the display of these statistics by clicking Time or selecting them from the View menu.
Show the time spent in a profiled object and in its descendants (i.e. its children, its children’s children, etc.). Cumulative timed statistics can be displayed in the statistics viewer either as absolute times or as percentages of the total time.
For example: Cook, Solve, Draw, Time
Show the time spent in a profiled object. It does not include the time spent in the object’s descendants.
For example: Cook (self), Solve (self), Draw (self), Time (self)
Show the number of times an event took place in a profiled object.
For example: Cook Count, Solve Count, Draw Count
Clears the statistics collected by the recording profile. This button only applies when recording with Live Updates turned on.
Starts a new recording. The performance monitor is put into an active state where it can record events in Houdini. You cannot view other profiles when the performance monitor is recording.
Stops the current recording. Statistics are generated for the recorded event and are stored in a new profile. The performance monitor is put back into a passive state.
Specifies the frame range for which to display performance data. Only controls what data is displayed, data for all frames is always collected).
Opens a profile from disk.
Saves the current profile to disk.
Exports the current profile in comma-separated format (CSV) to disk. The exported .csv file can be loaded into a spreadsheet application such as Microsoft Excel and used to generate graphs.
|Create Profile Comparison|
Creates a difference profile from two existing profiles. This new profile shows changes in statistics between the given profiles.
|Edit Performance Preferences|
Allows you to modify Performance Monitor preferences, namely threshold values.
Close the current profile. This will not delete saved-to-disk profiles.
The Record menu lists the event types that the performance monitor can record. Check the items for the events that you want the monitor to keep track of in the next recording.
Records node cook events. This includes events for evaluating parameters, executing callback scripts, and running internal Python code (for Python OPs).
Records DOP simulation solver events.
|Node Draws (CPU)|
Records events executed on the CPU that prepare nodes for drawing in the viewport.
|Node Draws (GPU)|
Records events executed on the GPU that prepare nodes for drawing in the viewport.
Records events that draw objects (i.e. geometry, handles, construction plane) in the viewport.
Records script events (i.e. Python, hscript).
Records events related to Mantra rendering.
You need to press the Render button in the Operation Controls toolbar to get stats in the Performance Monitor when using the Render Region tool.
Monitors statistics based on individual threads.
Monitors frame events and outputs them in the Event Log View.
Monitors statistics for memory-related events.
On Linux, Houdini uses an efficient memory allocator, jemalloc, that obtains memory in chunks. The allocator may cause some items in the performance monitor to have 0Kb of growth while other items have growths of 4Mb increments.
To view a more accurate distribution of memory growth, you can start Houdini without jemalloc by running the following commands in a terminal:
# Set this environment variable so that Houdini chooses # to load an empty jemalloc library. export LD_LIBRARY_PATH=$HFS/dsolib/empty_jemalloc:$HFS/dsolib:$LD_LIBRARY_PATH # Run this command to start Houdini. # For 32-bit Linux, use /lib/ld-linux.so.2 instead. /lib/ld-linux-x86-64.so.2 --inhibit-rpath '' $HFS/bin/houdini
Recorded memory statistics may be inaccurate if multi-threaded cooking is enabled. At the moment, multi-threaded cooking applies only to compositing networks and can be disabled in the Houdini Preferences dialog.
Monitors warnings and errors.
Turn on sampling for all events.
Turn off sampling for all events.
Updates statistics every few seconds during a recording session.
|View Absolute Times|
View the times in the stats viewer as absolute times, that is, display the times in hours, minutes, and seconds.
|View Percentage Times|
View the times in the stats viewer as percentages of the total time spent in the recorded events.
Shows recorded statistics in a tree view.
Shows recorded statistics in a list view.
|Event Log View|
Shows the event log instead of the recorded statistics.
The Enable Output checkbox turns on performance logging. You must turn this option on to see any output. The Clear button clears any logged output in the window.
|GPU Draw Stats|