[omniORB] footprint of omniorb is about 900KB; can it be redu ced?

David Byron dbyron@coactive.com
Tue, 20 Nov 2001 15:12:16 -0800


> I'm looking for a corba implementation for use in
> an embedded system running linux.  The system only
> has 16 meg of RAM, so small footprint is important.
> (See also my posts about ace/tao's footprint.)
> 
>   22652    2588    1796   27036    699c
../../../lib/i586_linux_2.0_glibc2.1/libtcpwrapGK.so.2

> Still, is there any way to reduce the footprint
> further without switching to static linking?

You could switch to the dummy gatekeeper (libomniGK_stub) by commenting out
this line from i586_linux_2.0_glibc2.1.mk.

omniORBGatekeeperImplementation = OMNIORB_TCPWRAPGK

When comparing static libraries, the dummy is 3k vs. 43k for the real
gatekeeper, at least for me.

>  230566   25932    9480  265978   40efa /usr/lib/libstdc++-libc6.2-2.so.3

You could also change eg2_impl to not use streams and I don't think you'll
have to link libstdc++.  I might be wrong about that though.

I haven't tried using any kind of serious optimization to make things
smaller, but it's worth a shot.

We're actually shooting to run omniORB in 8MB of RAM, but we're using static
libraries, and uClibc (http://uclibc.org) instead of glibc.  That involves
porting pthreads to uClibc and making uClibc thread-safe though, so it's not
a quick thing.  Depending on your platform, uClibc may work as a shared
library, so it still might be an option for you.

Good luck.  I'm curious how it goes.

-DB
---
David Byron                     dbyron@coactive.com
Coactive Networks, Inc.         http://www.coactive.com
28 Liberty Ship Way             voice:(415)289-7800
Sausalito, CA  94965            fax:(415)289-1320