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