Re: Cross-plateform CPU-load code

Accueil Forums Wanted! Cross-plateform CPU-load code Re: Cross-plateform CPU-load code


I would like to see this feature, but IMHO, this is a potential can of worms and I recommend deferring this feature to a later point in the development of Iannix.

I believe doing process performance-profiling portably within a multi-platform program like Iannix is one of those esoteric design issues that carries subtle gotchas. Native Instruments seem to have gotten it right in their dual-platform (Mac/Win) Reaktor. But because Max/MSP in their CPU utilization display only counts DSP loading and no control-rate functions, it is often in profound disagreement with the OS’es own profile tool (I’ve seen 200%-500% differences).

I think all of these variables are design factors in performance monitoring by a single process:

  • number of CPU cores
  • 32bit / 64bit
  • whether high res counters are available, or whether you must depend on the default software tick-counter (some flavors of a given O/S only implement a subset of the API’s counters — think Win32 and the so-called « multimedia counter »).
  • the risk of your own measurements influencing the results (i.e., one’s own process loading the CPU)
  • access rights to performance counters on behalf of the process (e.g., as much as possible, I work under a low-privilege user logon, so programmatic privilege-elevation could be needed)
  • platform portability (Qt implements timers, but I don’t think Qt addresses process-profiling in their API — wouldn’t it be fabulous if I’m wrong!)

Despite all the buzzwords, I’m not a sysinternals guru and in this case I might be more like Chicken Little. So please take all of this with a pinch of salt.


© IanniX Association

Qu'est-ce que IanniX ? | Téléchargement | Showcase | Forum | Recherche | À propos