From: Nicholas Nethercote Date: Sun, 25 Dec 2005 02:47:12 +0000 (+0000) Subject: A minor performance improvement -- make swizzle() faster. X-Git-Tag: svn/VALGRIND_3_2_0~448 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e830c38ce8191762d3c1413bf8864aaaa9908529;p=thirdparty%2Fvalgrind.git A minor performance improvement -- make swizzle() faster. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5431 --- diff --git a/coregrind/m_mallocfree.c b/coregrind/m_mallocfree.c index 98d03a9a06..faf3e56e6f 100644 --- a/coregrind/m_mallocfree.c +++ b/coregrind/m_mallocfree.c @@ -704,7 +704,12 @@ void swizzle ( Arena* a, UInt lno ) if (p_best == NULL) return; pn = pp = p_best; - for (i = 0; i < 20; i++) { + + // This loop bound was 20 for a long time, but experiments showed that + // reducing it to 10 gave the same result in all the tests, and 5 got the + // same result in 85--100% of cases. And it's called often enough to be + // noticeable in programs that allocated a lot. + for (i = 0; i < 5; i++) { pn = get_next_b(pn); pp = get_prev_b(pp); if (pn < p_best) p_best = pn;