Tuning
Crymap’s performance tuning options are very limited; in fact, Crymap itself does not provide any at all.
Thread Count
As of Crymap 2.0.0, Crymap is always entirely single-threaded.
Memory Allocator
Crymap uses the host system’s malloc()
, so exactly how it gets tuned depends
on your system. Often, you can refer to malloc(3)
for information on how to
configure the allocator.
Crymap is very conservative about allocating memory and ensures that memory not
needed is freed expediently. The memory allocator itself may not be. In
particular, glibc’s malloc()
(used on most Linux installations) and jemalloc
(used on FreeBSD) will switch to a strategy optimised for multi-core
performance when running on a multi-core system. This can cause Crymap to use
dramatically more memory than it actually needs, potentially by a factor of as
much as 10. If running Crymap on a multi-core system with memory constraints,
it is useful to disable the multi-core allocation strategies.
With glibc malloc()
, this can be done by setting the environment variable
M_ARENA_MAX
to 1
.
With jemalloc, a similar thing can be done by setting MALLOC_CONF
to
narenas:1
.