comp.lang.ada
 help / color / mirror / Atom feed
From: geert@fozzie.sun3.iaf.nl (Geert Bosch)
Subject: Re: GNAT Executables: How low can you go?
Date: 1996/04/19
Date: 1996-04-19T00:00:00+00:00	[thread overview]
Message-ID: <4l7qod$40s@fozzie.sun3.iaf.nl> (raw)
In-Reply-To: 31768D19.446B9B3D@escmail.orl.mmc.com

Theodore E. Dennison (dennison@escmail.orl.mmc.com) wrote:
`` I guess I'm alone in thinking this is just "re-arranging the deck 
   chairs"? ''

Maybe. Please note that memory requirements drop dramatically for the second
and later apps that run concurrently. Or do you say, typical modern systems
have so much RAM and such low paging rates that it doesn't matter if an
application needs 200 kB RAM instead of 20? 

My impression (I've not found a way of precisely measuring this yet) is
that the stripped down executables have a much reduces start time.
Because loaded DLL's are only discarded when there is no free RAM left
and apps that terminate result in free memory, there's a good chance
that a subsequently loaded executable can reuse the already loaded
DLL. In my test application it would be the difference between loading
116 kB or 12 kB. 

Maybe you're thinking in terms of large applications and if that's the case
I agree with you. For a 3 MB executable it won't matter much if
it could be 2.5 MB when linked dynamically. My point, which I think is valid,
is that for small programs the factor 10 increase of program size has
a negative impact on performance and disk storage. 

For small applications that use relatively much library code, like GUI
based programs, the situation is totally different.  If the Sun-3
system I use right now wouldn't use dynamically linked libraries almost
everywhere, it would be impossible to have 3 users on the system
running a total of 30 X-Windows applications. I've used a couple of X
applications that had a statically linked GUI library for some time
(chimera and xmh for example) but after recompiling them using
dynamically linked libraries they cause much less paging. I do not know
any modern Unix systems that use a statically linked libc for
applications other than those needed for single user mode (mount, sh
etc).

Also notice that GNAT requires dynamically linked libraries by
default:  the EMX run-time system uses DLL's and all OS/2 API's are
implemented as DLL's. On the platform I was talking about (OS/2) DLL's
are used all over the place and I can find no good reason for regular
GNAT applications to be partially statically linked, resulting in a
slower and larger program than possible.

When you still think that dynamic linking is just re-aranging the desk
chairs, I'll try to find some pointers to relevant literature for you.
I don't think it's very useful to continue this discussing such a
well-established technology as dynamic linking in comp.lang.ada, when
your objections against dynamic linking are general, not just related
to implementations of Ada.

Regards,
   Geert
-- 
E-Mail: geert@sun3.iaf.nl     *** As far as we know, there have not been ***
 Phone: +31-53-4303054        ** any undetected failures in our software. **




  parent reply	other threads:[~1996-04-19  0:00 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-04-13  0:00 GNAT Executables: How low can you go? Geert Bosch
1996-04-13  0:00 ` Robert Dewar
1996-04-16  0:00   ` Geert Bosch
1996-04-16  0:00     ` Theodore E. Dennison
1996-04-16  0:00       ` Robert Dewar
1996-04-18  0:00         ` Theodore E. Dennison
1996-04-18  0:00           ` John Howard
1996-04-19  0:00             ` Robert Dewar
1996-04-18  0:00           ` Robert Dewar
1996-04-19  0:00             ` Theodore E. Dennison
1996-04-17  0:00       ` Geert Bosch
1996-04-17  0:00         ` Michael F Brenner
1996-04-18  0:00           ` Theodore E. Dennison
1996-04-19  0:00             ` Robert Dewar
1996-04-19  0:00             ` Geert Bosch [this message]
1996-04-26  0:00             ` Richard A. O'Keefe
1996-04-29  0:00               ` Theodore E. Dennison
1996-04-30  0:00               ` mjp
1996-04-18  0:00           ` Geert Bosch
1996-04-26  0:00           ` Geert Bosch
1996-04-18  0:00         ` Theodore E. Dennison
1996-04-18  0:00           ` Robert Dewar
1996-04-19  0:00           ` Norman H. Cohen
1996-04-19  0:00             ` Theodore E. Dennison
1996-04-19  0:00               ` Robert Dewar
1996-04-20  0:00           ` Al Christians
1996-04-22  0:00             ` Theodore E. Dennison
1996-04-19  0:00         ` Fergus Henderson
1996-04-17  0:00 ` Cordes MJ
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox