This is the mail archive of the cygwin 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]
Other format: [Raw text]

Re: calloc speed difference

On Jan 12 14:59, cyg Simple wrote:
> On 1/12/2018 9:33 AM, Corinna Vinschen wrote:
> > On Jan 12 15:06, Christian Franke wrote:
> >> Timing [cm]alloc() calls without actually using the allocated memory might
> >> produce misleading results due to lazy page allocation and/or zero-filling.
> >>
> >> MinGW binaries use calloc() from msvcrt.dll. This calloc() does not call
> >> malloc() and then memset(). It directly calls:
> >>
> >>   mem = HeapAlloc(_crtheap, HEAP_ZERO_MEMORY, size);
> >>
> >> which possibly only reserves allocate-and-zero-fill-on-demand pages for
> >> later.
> >>
> >> Cygwin's calloc() is different.
> > 
> > But then again, Cygwin's malloc *is* slow, particulary in
> > memory-demanding multi-threaded scenarios since that serializes all
> > malloc/free calls.
> > 
> > The memory handling within Cygwin is tricky.  Attempts to replace good
> > old dlmalloc with a fresher jemalloc or ptmalloc failed, but that only
> > means the developer (i.e., me, in case of ptmalloc) was too lazy...
> > busy! I mean busy... to pull this through.
> > 
> > Having said that, if somebody would like to take a stab at replacing
> > dlmalloc with something leaner, I would be very happy and assist as
> > much as I can.
> Corina, how reliable is the Cygwin time function on a non-Cygwin
> executable?  Isn't this a comparison of apples to oranges?

I wasn't comparing, in fact.  I was just saying that Cygwin's malloc
is slow, partially because dlmalloc is not the fastest one, partially
due to the serialization overhead in multithreading scenarios.


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: signature.asc
Description: PGP signature

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