ten thousand small processes

Sean Chittenden sean at chittenden.org
Mon Jun 30 16:33:54 PDT 2003

> > Instead of complaining about wasting 78 megabytes and arguing
> > about why various proposed solutions fall short and why your way
> > is the best, why don't you come up with a patch that saves space
> > for small programs?
> Funny. Seems to me that I keep making concrete
> suggestions---including a detailed proposal for giving more space to
> malloc()---and the answer is consistently ``We really don't care
> about per-process overhead.'' What's the benefit of a patch for
> people who don't even see the problem?

It'd be slick if malloc(3) had a mallopt(3) call that'd make it easier
to monkey with the _malloc_options, but, until such time as phk is on
this list or decides to add such an interface, why not just set:

_malloc_options = "<<<<<<<<<<<<<<<";   /* '<' * 15  */

to reduce the malloc cache to 0?  From malloc(3):

     Once, when the first call is made to one of these memory allocation rou-
     tines, various flags will be set or reset, which affect the workings of
     this allocation implementation.

     The ``name'' of the file referenced by the symbolic link named
     /etc/malloc.conf, the value of the environment variable MALLOC_OPTIONS,
     and the string pointed to by the global variable _malloc_options will be
     interpreted, in that order, character by character as flags.

     Most flags are single letters, where uppercase indicates that the behav-
     ior is set, or on, and lowercase means that the behavior is not set, or


     <       Reduce the size of the cache by a factor of two.  The default
             cache size is 16 pages.  This option can be specified multiple


Sean Chittenden

More information about the freebsd-performance mailing list