93443689a4
Add the "thread.allocated" and "thread.deallocated" mallctls, which can be used to query the total number of bytes ever allocated/deallocated by the calling thread. Add s2u() and sa2u(), which can be used to compute the usable size that will result from an allocation request of a particular size/alignment. Re-factor ipalloc() to use sa2u(). Enhance the heap profiler to trigger samples based on usable size, rather than request size. This has a subtle, but important, impact on the accuracy of heap sampling. For example, previous to this change, 16- and 17-byte objects were sampled at nearly the same rate, but 17-byte objects actually consume 32 bytes each. Therefore it was possible for the sample to be somewhat skewed compared to actual memory usage of the allocated objects. |
||
---|---|---|
.. | ||
bin | ||
doc | ||
include/jemalloc | ||
src | ||
test | ||
autogen.sh | ||
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 stand-alone "portable" implementation that currently targets only Linux. 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. URL: http://www.canonware.com/jemalloc/