[PD] CPU usage of GUI objects in subpatches

Jonathan Wilkes jancsika at yahoo.com
Tue Jul 16 02:28:54 CEST 2013

On 07/15/2013 08:16 PM, Jonathan Wilkes wrote:
> On 07/15/2013 05:40 PM, Miller Puckette wrote:
>> I tried this with four versions of a subpatch, one with "nothing" 
>> (just an
>> inlet connected through to an outlet), one with a "float", one with 
>> hslider, and
>> one with a number box (not "number2", just control-3 number). 
>> Subtracting
>> out the control case, I sent 1000000 random numbers through and asked 
>> the
>> cputime object how much time elapsed, and got approximately:
>>             float  hsl  number
>> closed      10    50     150
>> open        10    50     150
>> This was usin "until" to loop 1000000times.  Trying the same thing with
>> "metro 0.001" gives:
>> closed     <10   50     150
>> open       <10   60     200
>> That wasn't at all what I was expecting to see!
>> This was on a core 2 duo 7600 running at 1.6 GHz (my patch wasn't CPU 
>> hungry
>> enough to make my CPU want to speed up), linux 3.6.3-1.fc17.x86_64 
>> (Fedora)
>> cheers
>> Miller
> Getting back to the OP, I just want to point out that there are two 
> separate
> issues at play here.  I'll phrase them as a q&a:
> Q: When inserting an iemgui for the patch author's convenience (or 
> anyone else
> inspecting the abstraction), does it make a difference whether you put 
> an iemgui
> in the main flow of the patch vs. outside of that flow (as Frank 
> suggests)?
> A: The answer is usually yes, _regardless_ of the cpu usage of the GUI 
> object.  It's always
> better to have one less object in the main object chain.  If you just 
> need to send
> values down the chain, add an iemgui as an additional input to the 
> current object
> chain.  If you want to see results of your patch in realtime, use the 
> cord inspector
> which is available in both Pd-extended and Pd-l2ork.
> There may be situations where you want to see a bunch of iemguis 
> getting updated
> at once, but that's more likely to be a UI than something inside an 
> abstraction.
> Q: Are there times when it is useful to insert an iemgui into an 
> object chain, say,
> inside an abstraction, aside from its usefulness as a GUI?
> A: Yes-- see [tgl].  It takes the same [realtime] on my machine as 
> [f]---[== 0] when
> the patch is not visible,

I meant:  [f]x[== 0]


More information about the Pd-list mailing list