From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,1bce3f54cf1cba1b X-Google-Attributes: gid103376,public From: geert@fozzie.sun3.iaf.nl (Geert Bosch) Subject: Re: GNAT Executables: How low can you go? Date: 1996/04/19 Message-ID: <4l7qod$40s@fozzie.sun3.iaf.nl>#1/1 X-Deja-AN: 150483996 references: <4kmq7a$egm@fozzie.sun3.iaf.nl> <4l0o3s$hgt@utrhcs.cs.utwente.nl> <31742475.1CFBAE39@escmail.orl.mmc.com> <4l3h04$6si@linus.mitre.org> <31768D19.446B9B3D@escmail.orl.mmc.com> organization: La Calandre Infortunee newsgroups: comp.lang.ada Date: 1996-04-19T00:00:00+00:00 List-Id: 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. **