delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1998/02/15/16:22:15

From: cgf AT bbc DOT com (Christopher Faylor)
Subject: Re: MUCH faster cygwin.dll was RE:Time and motion studies of gcc
and egcs and LCC
15 Feb 1998 16:22:15 -0800 :
Message-ID: <EoG28q.F0J.cygnus.gnu-win32@bbc.com>
References: <199802021515 DOT IAA08872 AT chorus DOT dr DOT lucent DOT com>
Reply-To: cgf AT bbc DOT com
To: gnu-win32 AT cygnus DOT com

In article <34e5a60a DOT 56566602 AT smtp DOT netzone DOT com>,
Mikey <jeffdbREMOVETHIS AT netzone DOT 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 AT bbc DOT 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 AT cygnus DOT com" with one line of text: "help".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019