[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Different corba implementations
From:       <pbrown () redhat ! com>
Date:       1999-06-15 20:23:35
[Download RAW message or body]

I know some people don't like to hear this brought up, but I was
investigating alternate corba implementations for reasons of speed and
memory-usage recently.  MICO is nice but it sure is a pig.

I have found that TAO (the ORB on top of ACE, the Adaptive Communication
Environment) seems to concern itself with these issues to some degree, and
has attempted to combat it:

"Conventional implementations of CORBA suffer from excessive dynamic
memory management and data copying overhead. Dynamic memory
management is problematic for hard real-time systems because heap
fragmentation can yield non-uniform behavior for different message sizes
and different workloads. Likewise, excessive data copying throughout an
ORB endsystem can significantly lower end-to-end performance. 

Existing ORBs use dynamic memory management for several purposes. The ORB
Core typically allocates a memory buffer for each incoming client
request. IIOP demarshaling engines typically allocate memory to hold the
decoded request parameters. Finally, IDL dynamically allocate and delete
copies of client request parameters before and after an upcall,
respectively.

These memory management policies are important in some circumstances
(e.g., to protect against corrupting internal CORBA buffers when upcalls
are made in threaded applications that modify their input). However, this
strategy needlessly increases memory and bus overhead for real-time
applications, as well as for streaming applications (such as satellite
surveillance and teleconferencing) that consume their input immediately
without
modifying it.

TAO is designed to minimize and eliminate data copying at multiple points.
For instance, TAO's ``zero-copy'' buffer management system described
in allows client requests to be sent and received to and from the network
without incurring any data copying overhead. Moreover, these buffers can
be preallocated and passed between various processing stages in the ORB.
In addition, Integrated Layer Processing (ILP) can be used to reduce
data movement. Because ILP requires maintaining ordering constraints, we
are applying compiler techniques (such as control and data flow
analysis) to determine where ILP can be employed effectively. 

Using compiler techniques for presentation layer and memory management
functionality allows us to optimize performance without modifying
standard OMG IDL and CORBA applications."

Has anyone else checked out TAO?

---
  Preston Brown                                    Systems Engineer
  pbrown@redhat.com                                Red Hat, Inc. 

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic