>And from an ancient message by Paul on why alsa-lib wasn't enough: > >> Establishing connections: alsa-lib offers one model for this, based on the >> shared memory IPC mechanisms. Such a solution cannot scale to setups with >> lots of clients running at low latencies because of the overhead of >> context switching and the associated memory/cache performance loss.
heh. self->shoot (self->foot). self->mouth.place (self->foot). that was before i measured it. i was wrong, plain and simple. it costs us (very rougly) about 50usecs per switch, depending on how much data the client touches. this is a real cost, but its not unbearable, especially given what it buys us (clients in their own VM space, with their own GUI toolkits/models/whatever). but no, it won't scale to *lots* of clients at low latencies, even so. for that, things have to be in-process clients, which is much harder for application writers. --p
