use sized deallocation internally for ralloc

The size of the source allocation is known at this point, so reading the
chunk header can be avoided for the small size class fast path. This is
not very useful right now, but it provides a significant performance
boost with an alternate ralloc entry point taking the old size.
This commit is contained in:
Daniel Micay 2014-10-16 15:05:02 -04:00
parent 9673983443
commit a9ea10d27c
2 changed files with 2 additions and 2 deletions

View File

@ -2220,7 +2220,7 @@ arena_ralloc(tsd_t *tsd, arena_t *arena, void *ptr, size_t oldsize, size_t size,
copysize = (size < oldsize) ? size : oldsize; copysize = (size < oldsize) ? size : oldsize;
JEMALLOC_VALGRIND_MAKE_MEM_UNDEFINED(ret, copysize); JEMALLOC_VALGRIND_MAKE_MEM_UNDEFINED(ret, copysize);
memcpy(ret, ptr, copysize); memcpy(ret, ptr, copysize);
iqalloc(tsd, ptr, try_tcache_dalloc); isqalloc(tsd, ptr, oldsize, try_tcache_dalloc);
return (ret); return (ret);
} }

View File

@ -328,7 +328,7 @@ huge_ralloc(tsd_t *tsd, arena_t *arena, void *ptr, size_t oldsize, size_t size,
*/ */
copysize = (size < oldsize) ? size : oldsize; copysize = (size < oldsize) ? size : oldsize;
memcpy(ret, ptr, copysize); memcpy(ret, ptr, copysize);
iqalloc(tsd, ptr, try_tcache_dalloc); isqalloc(tsd, ptr, oldsize, try_tcache_dalloc);
return (ret); return (ret);
} }