Using component time to distribute computations across time

Hi all, I’ve got a fairly complex network running (Bullet Solver with upwards of 40 actors, lots of control logic, OSC and MIDI IO, and quite a bit of Python and rendering with PBRs on top of all that). Suffice it to say, FPS ain’t happy, and when I move this onto our Mac Mini, I can only sustain about 20-24fps.

One thing I’m trying out is using component time, because not all of this has to run at a high frame rate. For example, a lot of the network stuff can safely run at 20 fps. I’m thinking this will reduce the computational load, but I’m not sure if it will do so in a meaningful way. I also wonder if there’s any additional control I should think about for managing multiple component times. For example, if the global frame rate is 60 fps, and I have three components running at 20fps, it would make sense to “multiplex” them, that is, in global frames 1,2,3, it also runs the first frame from three different COMPs. Not sure how I would accomplish this, though.

Is this ever worth the hassle? Or am I setting myself up for a much bigger headache down the road?