On Sun, 2007-01-21 at 22:21 +0100, Maarten de Boer wrote: > Hi Paul > > I have a question about something you say in your slashdot post: > > "The overhead of calling the graph associated with the data flow for > the frames is not insignificant, even on contemporary processors. > Therefore, calling the graph the minimum number of times is of some > significance, significance that only grows as the latency is reduced. > Because of this, all existing designs, including ASIO and CoreAudio > (with the proviso that CoreAudio is *not* driven by the interrupt from > the audio interface) call the graph only once for every hardware buffer > segment/period/whatever." > > Do you have some numbers to show how relevant this overhead actually is? > I mean, if I use a specific internal buffer size (say 128 samples), > independend of the system buffer size, would that really be noticable? > I can think of some situations where this would be preferable. For > example, if you have many points in your callgraph where a fixed buffer > size is required (say some FFT's). Rather than doing buffering at all > these points, it seems to make more sense to do the whole callgraph > with that buffer size. I hope I make myself clear... > > I did some experiments, and did not notice any significant difference > using different internal buffer sizes for my call graph. I am talking > about a call graph within a single application, and maybe you were > talking about a call graph with context switches? both, really. if you get down to very, very small buffer sizes (say, 4), the overhead of making the function calls gets to be a significant fraction of the total time spent processing the audio. this is partly why running JACK with low buffer sizes shows the "DSP load" as significantly higher, even if almost nothing is happening. you will only see this effect with deep call trees. inside a single, simple app, the effect is probably hard to detect. but yes, because of context switches between clients, it becomes even more true in JACK. that effect is measurable and isn't tiny. --p