Re: Local communication



  Hi,
  I think that "local use" actually means in-proc communication to a
component activated as shared library.  It would be interesting to
benchmark this case also.
  Regards.

A Sex, 2004-06-11 às 19:00, Robert Schwebel escreveu:
> Hi, 
> 
> I'm currently searching for a CORBA ORB for an embedded project, and
> ORBit2 seems not the worst choice to me, especially as it supports C.
> 
> ORBit2 is said to be optimized for local use, which is good for my
> design. It has several parts which are normally local but can, in some
> cases, be on another machine. However, I was wondering about the
> performance for purely local calls, so I wrote a little testcase which
> defines an object with only one method (print out one character to
> stdout) which is called from a client in a loop. I compared the
> per-call-times with a normal function call and found it to be about 300
> times slower; compared with a "transfer data over named pipe" testcase
> there is still a factor of 15 between the ORBit variant and the native
> one. 
> 
> I'm wondering where this huge differences come from. I had expected
> that, when the ORB notices that an object is local, it tries to do the
> IOP communication as fast as possible (shared memory?). Having a short
> look into the source it seems like it uses Unix Domain Sockets via linc
> for local communication. 
> 
> My question now is: where does this difference come from? Can it be
> completely explained by the fact that ORBit2 does things I have not
> thought of in my stupid test cases (like locking)? Shouldn't Unix Domain
> Sockets be implemented by recent kernels in a way to be pretty fast? Or
> is it just the overhead by using the IOP vs. just a call? Would a IOP
> implemtation based on shared memory be faster, or would it be a waste of
> time?  
> 
> I'm aware of the fact that it is surely not the best idea to use CORBA
> for non-IPC calls; the argument here is that it will probably be
> difficult enough to teach the people who shall write the code how to use
> a C based object model (it is generally difficult to teach embedded
> people into thinking in well designed software patterns instead of bit
> banging). It will probably be not easier to teach them to learn two
> object models, one for non-IPC and one for IPC calls. 
> 
> I hope that some of you ORBit2 gurus can give me some hints... :-) 
> 
> Robert 
-- 
Gustavo J. A. M. Carneiro
<gjc inescporto pt> <gustavo users sourceforge net>
The universe is always one step beyond logic



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]