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: John Howard Subject: Re: GNAT Executables: How low can you go? Date: 1996/04/18 Message-ID: #1/1 X-Deja-AN: 148283406 references: <4kmq7a$egm@fozzie.sun3.iaf.nl> <4l0o3s$hgt@utrhcs.cs.utwente.nl> <31742475.1CFBAE39@escmail.orl.mmc.com> <31765239.167EB0E7@escmail.orl.mmc.com> content-type: TEXT/PLAIN; charset=US-ASCII organization: SkyNET Corporation mime-version: 1.0 newsgroups: comp.lang.ada Date: 1996-04-18T00:00:00+00:00 List-Id: On Thu, 18 Apr 1996, Theodore E. Dennison wrote: > Robert Dewar wrote: > > > > T.E.D says > > > > "Of course you realize that unless you have other applications running > > simultaniously on the system using those DLL's, you havent gained > > anything. You've just split your executable into several files. All > > the bytes are still there." > > > > That completely misses the biggest value of DLL's, which is that they > > stay loaded as you load subsequent applications. Suppose you have a > > 2 meg DLL and 30 successive small executables that are loaded. This > > will be MUCH more efficient than loading 30 successive 2 meg executables. > > DLL's are useful in improving performance even if there is never a case > > of simultaneous use. > > Well....actually no, that doesn't miss that value. If you read the > text you quoted, it says, "...unless you have other applications running > simultaniously on the system using those DLL's..." > -- > T.E.D. You can gain by saving on time to load the program and DLL's. The decoding and expansion of a compressed file in memory might beat the time it takes to access a slow I/O device for the uncompressed original file. Executables typically are loaded once per session. Comparing the single load time of the uncompressed form against the single load time of the compressed form will accurately indicate if an executable should be distributed in compressed form. DLL's can be either reloaded or shared by multiple processes. Complications come from not being able to predict or control the cost of reloading a DLL. Generally, large DLL's will be compressed to save storage space at the expense of adding a decoding time component to the load time. A smaller uncompressed file is quicker to load during load time. A compressed file may or may not be quicker to load during load time -- you have to add in the decode time to know. Do not repeatedly decode the same DLL unless it is unavoidable. For example, a main program can repeatedly yet rarely demand a resource DLL which was loaded earlier and given a high priority by the operating system but later unloaded due to becoming a low priority. Sometimes a programmer is allowed enough control to have the operating system lock their DLL in a memory space so that only a single decode is necessary. ------------------------------------------------------------------------ -- John Howard -- Team Ada Team OS/2 -- -- -- Keramos -- ------------------------------------------------------------------------ Psalm 22:30-31