de6fbdb72c
Simplify chunk_alloc_mmap() to no longer attempt map extension. The extra complexity isn't warranted, because although in the success case it saves one system call as compared to immediately falling back to chunk_alloc_mmap_slow(), it also makes the failure case even more expensive. This simplification removes two bugs: - For Windows platforms, pages_unmap() wasn't being called for unaligned mappings prior to falling back to chunk_alloc_mmap_slow(). This caused permanent virtual memory leaks. - For non-Windows platforms, alignment greater than chunksize caused pages_map() to be called with size 0 when attempting map extension. This always resulted in an mmap() error, and subsequent fallback to chunk_alloc_mmap_slow(). |
||
---|---|---|
bin | ||
doc | ||
include | ||
src | ||
test | ||
.gitignore | ||
autogen.sh | ||
ChangeLog | ||
config.guess | ||
config.stamp.in | ||
config.sub | ||
configure.ac | ||
COPYING | ||
INSTALL | ||
install-sh | ||
Makefile.in | ||
README |
jemalloc is a general-purpose scalable concurrent malloc(3) implementation. This distribution is a "portable" implementation that currently targets FreeBSD, Linux, Apple OS X, and MinGW. jemalloc is included as the default allocator in the FreeBSD and NetBSD operating systems, and it is used by the Mozilla Firefox web browser on Microsoft Windows-related platforms. Depending on your needs, one of the other divergent versions may suit your needs better than this distribution. The COPYING file contains copyright and licensing information. The INSTALL file contains information on how to configure, build, and install jemalloc. The ChangeLog file contains a brief summary of changes for each release. URL: http://www.canonware.com/jemalloc/