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. -- 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/