Subject: Re: Replacement for grep(1) (part 2)
To: Daniel C. Sobral <dcs@newsguy.com>
From: Alfred Perlstein <bright@rush.net>
List: tech-userlevel
Date: 07/12/1999 23:15:57
On Tue, 13 Jul 1999, Daniel C. Sobral wrote:

> Jon Ribbens wrote:
> > 
> > "Daniel C. Sobral" <dcs@newsguy.com> wrote:
> > > That's *not* abomination. How about pre-allocating over 100 Mb for X
> > > Free, for instance?
> > 
> > What about it? If an application does not need 100MB, it should not
> > malloc it. If it does need it, it should malloc it and know that it
> > is available if the malloc succeeds.
> 
> Well, learn something about real programs first, and then come back.
> 
> > > Basically, if you don't have enough memory, you just don't have enough
> > > memory.
> > 
> > Yes, and the application should be told this via the standard
> > documented interface for doing so, i.e. returning NULL from
> > malloc().
> 
> This results in the applications working with less memory than would
> actually be possible through overcommit.
> 
> > > What FreeBSD does *reduces* the need for memory. If FreeBSD *did
> > > not* do it, then you'd need much more memory.
> > 
> > Why? Are there really such a lot of applications allocating vastly
> > more memory than they actually use?
> 
> Right.
>

You're not really being fair by giving such simple answers, not
that it hasn't been discussed TO DEATH already so i understand
your indifference. :)

I didn't understand the reasoning of over commit until I was pointed
out this scenario:

(let's use netscape because it is huge)

You're browsing with netscape and It hits about 32megs in size,
you click on a multimedia object and netscape execs a helper app.

at the moment of the fork you have a major overcommit, considering
private mappings and allocated memory that is suddenly doubled when
under a second later you will exec a program that is only a meg or
so.

you also have to consider a program wishing to make sparse use
of its address space, without overcommit it becomes impossible.

if you want to impose limits, use /etc/login.conf, nuff said.

-Alfred Perlstein - [bright@rush.net|bright@wintelcom.net] 
systems administrator and programmer
    Win Telecom - http://www.wintelcom.net/