[opensource-dev] Client Plugin System Design

Lawson English lenglish5 at cox.net
Mon Mar 8 10:40:34 PST 2010


Morgaine wrote:
>
>
> PS. With regards to "Networking code in every plugin just to connect 
> to the client", networking is made available by the operating system 
> to every process through system calls or system subroutines, ie. the 
> thinnest interface possible.  There is no bloat or overhead involved.  
> Particular languages sometimes pretty up the system interface a 
> little, but these bindings do not normally introduce any significant 
> overhead. Throughput and latency of socket communications is not a 
> significant issue either --- I've measured them in an environment 
> which emulated this design pattern, and the level of performance might 
> even suit some rendering tasks.
>

When extra speed is needed, the shared memory design of the media plugin 
can be used to augment/replace socket connections.  The only caveat 
there is that each OS has a limit on how many shared buffers can be used 
per process/machine.

On Mac OS X, without some superuser tweaking and maybe a restart, it's 8 
per process and 32 per machine. Other *nix have more I think and I have 
no idea what Windows allows. Regardless, its something that should be 
used sparingly.


Lawson







More information about the opensource-dev mailing list