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