[PD-dev] outlet_anything() & threads

Hans-Christoph Steiner hans at eds.org
Wed May 17 13:59:00 CEST 2006


On May 17, 2006, at 1:48 PM, Tim Blechmann wrote:

>
>>> linked list is highly inefficient ... O(n) ... one of the biggest
>>> problems of pd's scheduler ...
>>
>> Perhaps in theory, but Pd's scheduler is working quite well for me
>> and a few thousand other people.  But I don't pay attention to the
>> implementation details.
>
> using several thousand metro/delay/pipe objects in my performance  
> patch,
> adding clock callbacks to the list takes a considerable amount of my
> cpu...
>
>>> - polling the device from the pd thread would add overhead code
>>> which is
>>> possibly blocking ... so your code can't be used in low-latency
>>> systems ...
>>
>> [hid] currently uses no threads, yet I have not heard any complaints
>> about blocking/clicks.  Also, I have yet to hear any clicks caused by
>> [hid].
>>
>> Please send an example patch if you can make [hid] cause clicks.
>
> well, this is one of the most common mistakes when designing low  
> latency
> systems ... there are problems, that occur only in very few  
> cases ... so
> you don't experience the dropout during 10 days of rehearsal, but  
> during
> the performance you have a click ...
> in these cases analyzing the code is a better approach than  
> testing ...

I disagree.  For me practice is much more important than theory.  
There are endless theoretical issues with software, yet it generally  
works.  For example, the old theories of software development say  
that the linux kernel development model does not work.

Theories should be based on observation.  A good scientist observes  
the phenomenon with as open a mind as possible, then derives the  
hypothesis from the observation.  [hid] object has been used a lot  
more than 10 days of rehearsal, there are numerous people performing  
with it, me included.

Performance tuning is the perfect example.  A good programmer tries  
to write code that will perform well, but you never really know until  
you actually test it.  (Or profile it, depending on your choice of  
words).  That's where things like SHARC and oprofile come in.

Software is far too complex for one person to understand, from the  
transistors, to the final interface to the human, to all the layers  
in between.  Therefore, testing is essential.  So far, [hid] has  
received a pretty good amount of testing, it would be good to do some  
profiling too, but clicks have not yet been a problem.

.hc

________________________________________________________________________ 
____

Using ReBirth is like trying to play an 808 with a long stick.
                                               -David Zicarelli





More information about the Pd-dev mailing list