This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: MUCH faster cygwin.dll was RE:Time and motion studies of gcc and egcs and LCC


In article <34e5a60a.56566602@smtp.netzone.com>,
Mikey <jeffdbREMOVETHIS@netzone.com> wrote:
>Possibly everyone already thought of this
>after Sergey's comments about time spent in
>relocation processing during configure, but for those
>who haven't, it works!!
>
>cd .../H-i386-cygwin32/bin
>cp cygwin.dll cygwin.striped_dll
>strip.exe --strip-all --remove-section=.reloc cygwin.striped_dll
>exit
>
>from explorer/dos box
>rename cygwin.dll cygwin.B18_dll
>( or cygwin.cool_dll as appropriate :)
>rename cygwin.striped_dll cygwin.dll
>start bash
>at least 30-40% speed increase on EVERYTHING ;^)

*I* hadn't thought of this, and I just tried it.  It works!  Brilliant!

>Geoff I would recommend using --image-base=0x78000000
>for cygwin.dll same as MSVCRT.DLL which is relocatable
>and should never be loaded in the same VM anyway.

You can move the base yourself if you have MSVC's editbin program:

	editbase /rebase:base=0x78000000 cygwin.dll

Do this before you strip the .dll...

>WARNING all other dll's you build for use with this cygwin.dll
>will have to be relocatable!!!! or use an image base
>other than 0x10000000. 0x10070000+ should be safe.
>
>Part of the reason that cygwin32 looks so slow on
>win32, may be that the low level memory access
>routines in newlib and libiberty <string.h> are not x86 optimized
>
>memcpy strcpy etc. are all, as far as
>I have looked at them written in c to use int copy routines
>which dosen't look to me like a very efficient solution.
>
>Maybe cc1 should optimize these to use MOVSxx SCASxx STOSxx etc.
>but it dosen't seem to, I just rebuilt newlib/ coolview/ and looked
>at the disassembly of the routines in newlib/libc/string, and
>they look very inefficient to me. ;^).

Did you look at the routines themselves or at actual code in cygwin
which calls them?  I was under the impression that GCC inlined some
of the string/memory routines if the proper optimization was specified.
-- 
http://www.bbc.com/	cgf@bbc.com			"Strange how unreal
VMS=>UNIX Solutions	Boston Business Computing	 the real can be."
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]