|
|
Message-ID: <20111117025031.GR132@brightrain.aerifal.cx>
Date: Wed, 16 Nov 2011 21:50:31 -0500
From: Rich Felker <dalias@...ifal.cx>
To: musl@...ts.openwall.com
Subject: Re: unneeded mremap calls in realloc
On Wed, Nov 16, 2011 at 01:45:37AM +0100, Szabolcs Nagy wrote:
>
> as discussed on irc, in realloc there is a mremap
> where newlen is pagesize adjusted but oldlen is not
> so oldlen==newlen almost always fails
>
> run this simple test case with strace to see the issue:
>
> #include <stdlib.h>
> int main(){
> char *p = 0;
> int n;
>
> for (n = 0; n < 500000; n++)
> p = realloc(p, n);
> free(p);
> return 0;
> }
>
> the fix that significantly speeds up the above code:
> (there might be better fix, eg why oldlen is not a
> multiple of pagesize in the first place?)
oldlen should always be a multiple of page size.. Need to check out
why it's not...
Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.