[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