Re: LISP web hosting

From: Rob Warnock (rpw3_at_rpw3.org)
Date: 03/22/04


Date: Mon, 22 Mar 2004 04:59:33 -0600

Robert Bruce Carleton <rbc@hakuhale.net> wrote:
+---------------
| Do you think clisp would have a smaller memory footprint than cmulisp.
+---------------

Perhaps, but it would have a *far* higher CPU "footprint" (assuming the
bulk of the app were compiled). Besides, as I said, the real memory
footprint of CMUCL is much more reasonable than its apparent one.
and you can tune its GC if you like to trade off memory versus CPU
used. Specifically, as distributed CMUCL does a GC whenever the heap
has grown by 12 MB since the last GC finished, but you can tune that
down to GC more often (at the cost of more CPU) or up to lessen the
CPU load. You probably want to set it so that you can get at least
"a few" web hits between GCs for whatever kind of application you're
doing. For example, with the main app I'm currently working on, which
does database queries with 10-100 rows or results and generates HTML
pages with tables of the results on the fly, I seem to get ~25 hits
between GCs using the default 12 MB delta threshold. And those are
the "cheap" generational GCs, which almost always recover almost all
of the memory that was allocated since the last one. So the dymamic
heap used (which is in addition to the 20+ MB of startup code/image)
tends to cycle between ~5 MB and ~20MB, say. [There's a bit of slop
depending on when higher-generation GCs get done.]

+---------------
| If so, would it still get the job done for server side lisp applications?
+---------------

One point to consider is that CLISP has classically been single-threaded,
which can block other users if one user on a *sloooowww* Internet connection
asks for a page that generates a lot of output.

The Apache proxy support that Dan mentioned (in connection with Araneida)
can help this, since Apache will accept all of the output quickly into
the proxy cache, and then dribble it out to the user, doing the rate-
matching for you. [I think...]

-Rob

-----
Rob Warnock <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607



Relevant Pages

  • Re: Memory usage increases with ADO.NET v2.0 RTM
    ... Just wanted to add that the memory pressure in 2.0 was quite a bit higher: ... Gen #0 GCs: 39 ... > Tested load of 1,000,000 rows using code from this article. ... > they hold references to all the rows in the data set, ...
    (microsoft.public.dotnet.framework.adonet)
  • Re: .Net is more memory safe?
    ... > Most GCs go from a small set of root pointers, ... you could claim more memory than can be ... There seems to be a conflict between your definition of memory leak and that ... of the GCs. ...
    (borland.public.delphi.non-technical)
  • Re: reducing number consing
    ... > GCs tend to move data around in memory. ... > CPU instructions. ... Cache suddenly becomes extremely valuable and moving ...
    (comp.lang.lisp)
  • Re: What can .Net do for me?
    ... That is not a feature of GC, only of some GCs. ... confuse the issue! ... In .NET the locality of memory allocations tends to ... believe that GC by its nature must slow down memory performance. ...
    (borland.public.delphi.non-technical)
  • Re: How to set up a Linux machine that occupies the minimum memory footprint ?
    ... Of course, if you use 8GB of RAM, or more precisely if you ... Are you saying that if I have a 4GB RAM memory, ... Linux will somehow "know" that it doesn't have ... You've said in another message that your app is ...
    (comp.os.linux.setup)