Mail Archives: cygwin-developers/1998/04/16/10:23:10
Ian Lance Taylor wrote:
> How about including the generic function in a COMDAT section in the
> library?
How do you want to pass a name of a dll to load to this function?
> So the speed up from your scheme is not the loading of the DLL, but
> only the symbol resolution.
Yes.
> My understanding is that MS has a program, editbin, which will set up
> the import address table and timestamps of a given executable or DLL
> for your system. People concerned about performance can run that. We
Here is the description of editbin's /bind option. I tried to "bind"
cygwinb19.dll - the import table was modified, but I didn't have any
speedup.
/BIND
Home | Overviews
This option sets the addresses of the entry points in the import address
table for an executable file or DLL. Use this option to reduce load time of
a program.
/BIND[:PATH=path]
Specify the program's executable file and DLLs in the files argument on the
EDITBIN command line. The optional path argument to /BIND specifies the
location of the DLLs used by the specified files. Separate multiple
directories with a semicolon (;). If path is not specified, EDITBIN
searches the directories specified in the PATH environment variable. If
path is specified, EDITBIN ignores the PATH variable.
By default, the program loader sets the addresses of entry points when it
loads a program. The amount of time this process takes varies, depending on
the number of DLLs and the number of entry points referenced in the
program. If a program has been modified with /BIND, and if the base
addresses for the executable file and its DLLs do not conflict with DLLs
that are already loaded, the operating system does not need to set these
addresses. In a situation where the files are incorrectly based, the
operating system relocates the program's DLLs and recalculates the
entry-point addresses, which adds to the program's load time.
--
Sergey Okhapkin, http://www.lexa.ru/sos
Moscow, Russia
- Raw text -