[opensource-dev] Client Plugin System Design
Dzonatas Sol
dzonatas at gmail.com
Wed Mar 17 15:45:16 PDT 2010
Rob Nelson wrote:
> As stated before, sockets add unnecessary bulk to any plugin
> architecture, ESPECIALLY HTTP. The SL viewer currently takes up 100%
> CPU even with scripting turned off; The last thing we need is more
> memory or processor load.
Please, go ahead and benchmark how SNOW-375 has added such bulk and
processor load. There is actual code there that works, so no need to
speculate against HTTP methods for client-side scripts.
> I therefore suggest C++ Dynamic Shared Objects
We've been through that route. See earlier releases of MonoVida which
didn't use any HTTP interface. Main problem: asynchronization.
Anything added directly to the viewer requires it to be in the main loop
for synchronization of locks and access to its memory. More scripts
added directly to that loop only slow down the entire frame rate more.
The main issue has been that the network, renderer, UI, and other parts
don't run asynchronously from each other. They are all in one big loop
-- a single frame each round-trip.
Multiple processes allow us to take advantage of multi-core machines
easier. A single loop doesn't allow us to take advantage of multi-core.
More information about the opensource-dev
mailing list