Mail Archives: cygwin/2002/04/24/01:47:09
On Tuesday 23 April 2002 22:04, Sami Korhonen wrote:
> I wasnt sure wheter I should post about this on gcc bug report list or
> here. Anyways, it seems that using -O2 flag with gcc causes huge slowdown
> in memcmp(). However i dont see performance drop under linux, so I suppose
> it is cygwin issue.
>
> $ gcc memtest.c -O2 -o memtest ; ./memtest.exe
> Amount of memory to scan (mbytes)? 100
> Memory block size (default 1024)? 1024
> Allocating memory
> Testing memory - read (1 byte at time)
> Complete: 889.73MB/sec
> Testing memory - read (4 bytes at time)
> Complete: 3313.07MB/sec
> Freeing memory
>
> $ gcc memtest.c -o memtest ; ./memtest.exe
> Amount of memory to scan (mbytes)? 100
> Memory block size (default 1024)? 1024
> Allocating memory
> Testing memory - read (1 byte at time)
> Complete: 2517.94MB/sec
> Testing memory - read (4 bytes at time)
> Complete: 2933.50MB/sec
> Freeing memory
>
>
> '1 byte at time' is using memcmp() to compare two blocks.
You leave so many relevant considerations unspecified, that anything I say
must be a stab in the dark. I assume you have a standard cygwin
installation, where binutils is built to honor only 4-byte alignments, while
recent linux configurations provide for 16-byte alignments. The significance
of that is different on various CPU families, with code alignment being quite
important on certain CPU's, and data alignment on others. Do we assume that
you are running on a 486, since you have not told gcc otherwise? You may
have fallen accidentally into good alignment in one case and bad in the
other. You might or might not be using similar versions of gcc in cygwin and
linux. If you would provide a test case, and mention some hardware
parameters, some of the mystery could be eliminated; for example, we could
find out whether memcmp() is code generated by gcc or from a library. cygwin
is not generally considered an important target for performance optimization,
as you can see from the alignment considerations and the differences in the
libraries.
--
Tim Prince
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -