]> git.saurik.com Git - redis.git/commit - src/zmalloc.h
Add zcalloc and use it where appropriate
authorBenjamin Kramer <benny.kra@gmail.com>
Sat, 24 Jul 2010 21:20:00 +0000 (23:20 +0200)
committerBenjamin Kramer <benny.kra@gmail.com>
Sat, 24 Jul 2010 22:11:20 +0000 (00:11 +0200)
commit399f2f401c6fc3d489e2e40ffc78638425e3a09e
treef42d4b332351e17c4ccede5a767a5346329b4b63
parentd9dd352b3693e1ad8ab2e0993b4f0a275d7fd512
Add zcalloc and use it where appropriate

calloc is more effecient than malloc+memset when the system uses mmap to
allocate memory. mmap always returns zeroed memory so the memset can be
avoided.  The threshold to use mmap is 16k in osx libc and 128k in bsd
libc and glibc. The kernel can lazily allocate the pages, this reduces
memory usage when we have a page table or hash table that is mostly
empty.

This change is most visible when you start a new redis instance with vm
enabled.  You'll see no increased memory usage no matter how big your
page table is.
src/dict.c
src/vm.c
src/zmalloc.c
src/zmalloc.h