experimentally add mallopt tweaks for reduced memory consumption

function                                             old     new   delta
mallopt                                                -     126    +126
main                                                  91     117     +26
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 152/0)             Total: 152 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2009-09-06 02:12:28 +02:00
parent 6db4784d27
commit 1f7c167b23

View File

@ -28,6 +28,8 @@
*/ */
#include <assert.h> #include <assert.h>
#include <malloc.h>
#include <sys/user.h> /* PAGE_SIZE */
#include "busybox.h" #include "busybox.h"
@ -763,6 +765,24 @@ int lbb_main(char **argv)
int main(int argc UNUSED_PARAM, char **argv) int main(int argc UNUSED_PARAM, char **argv)
#endif #endif
{ {
/* Tweak malloc for reduced memory consumption */
#ifndef PAGE_SIZE
# define PAGE_SIZE (4*1024) /* guess */
#endif
#ifdef M_TRIM_THRESHOLD
/* M_TRIM_THRESHOLD is the maximum amount of freed top-most memory
* to keep before releasing to the OS
* Default is way too big: 256k
*/
mallopt(M_TRIM_THRESHOLD, 2 * PAGE_SIZE);
#endif
#ifdef M_MMAP_THRESHOLD
/* M_MMAP_THRESHOLD is the request size threshold for using mmap()
* Default is too big: 256k
*/
mallopt(M_MMAP_THRESHOLD, 8 * PAGE_SIZE - 256);
#endif
#if defined(SINGLE_APPLET_MAIN) #if defined(SINGLE_APPLET_MAIN)
/* Only one applet is selected by the user! */ /* Only one applet is selected by the user! */
/* applet_names in this case is just "applet\0\0" */ /* applet_names in this case is just "applet\0\0" */