Question #147131 on New Real Time Battle changed:
https://answers.launchpad.net/nrtb/+question/147131
Status: Open => Answered
George Jordan proposed the following answer:
I am having reservations about MUSCLE. The part that "scares" me is the
part about the speed of service.
********** From the web page **************************************************
"Is TCP stream communication fast enough for my app? Do I need to use lower
level protocols such as UDP or ICMP?
MUSCLE does all of its data transfer by serializing Messages over TCP streams.
If your application is a particularly high-performance one (such as video
streaming), MUSCLE may not be able to provide you with the efficiency you need.
In this case, you might use MUSCLE TCP streams for your control data only, and
hand-code separate routines for your high-bandwidth/low-latency packets. I've
used this pattern (TCP + UDP) in audio-over-Internet programs before and it
works well.
In addition, you should be aware of the CPU and memory overhead added by
MUSCLE to your communications. While MUSCLE has been designed for
efficiency, and will not make unreasonable demands on systems that run
it, it is necessarily somewhat less efficient that straight byte-stream
TCP programming. Specifically:
Its use of Messages means that there will be several dynamic allocations and
deallocations, and an extra data copy, for each message sent and received.
(note: ObjectPools are used to minimize the former)
It uses arbitrary-length message queues to avoid ever having to "block" your
application's threads. While this will keep your application reliably
responsive to the user, it can potentially use a lot of memory if you are
producing messages faster than the network connection can send them.
If you use the MessageTransceiverThread class there will be one extra thread
used for each MUSCLE TCP connection. In addition, MessageTransceiverThread (and
the muscled) uses select() to arbitrate data flows, which can be inefficient
under the currently released (R5 and earlier) BeOS networking stacks. (it's
more efficient under other operating systems, and should be fine under BONE as
well)"
****************************************************************
If you can explain how this is not an issue/problem for us, then I would
feel better about it.
--
You received this question notification because you are a member of NRTB
Core, which is an answer contact for New Real Time Battle.
_______________________________________________
Mailing list: https://launchpad.net/~nrtb-core
Post to : [email protected]
Unsubscribe : https://launchpad.net/~nrtb-core
More help : https://help.launchpad.net/ListHelp