These functions allow to monitor CPU usage of the whole audio thread or of arbitrary sections of the program while it is running.
Manually calling Bela_cpuTic() and Bela_cpuToc() around specific sections of the code, the CPU performance of these sections can be evaluated. Calling these functions incurs an overhead.
When setting the internal CPU monitoring via Bela_cpuMonitoringInit(), the user can compute the CPU time of the entire audio thread. The core code internally calls Bela_cpuTic() and Bela_cpuToc() and the user can get the CPU usage details vai Bela_cpuMonitoringGet();
- Note
- These measurements are based on reading a monotonic clock and therefore they include not only actual CPU cycles consumed by the current thread but also any time the thread spends idle, either because it's blocked or because a higher priority thread is running. 
◆ Bela_cpuMonitoringInit()
      
        
          | int Bela_cpuMonitoringInit | ( | int | count | ) |  | 
      
 
Set internal CPU monitoring for the audio thread. 
- Parameters
- 
  
    | count | Number of samples (tic/toc pairs) in a acquisition cycle. Use 0 to disable. |  
 
- Returns
- 0 on success, an error code otherwise. 
 
 
◆ Bela_cpuMonitoringGet()
Get stats about internal CPU monitoring.
- Returns
- a pointer to a BelaCpuData structure which contains data about the CPU usage of the audio thread. 
 
 
◆ Bela_cpuTic()
Start measuring CPU time. When data->currentCount reaches data->count, a acquisition cycle is completed. data->percentage gives the average CPU busy time during the latest completed acquisition cycle.
- Parameters
- 
  
    | data | The count field is an input and needs to be populated before calling. Other fields are used as I/O by the function. |  
 
 
 
◆ Bela_cpuToc()
Stop measuring CPU time.
- Parameters
- 
  
    | data | The count field is an input and needs to be populated before calling. Other fields are used as I/O by the function. |