[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