Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Garbage collection cost (was Re: Parenthesized syntax challenge)
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  Messages 26 - 50 of 57 - Collapse all  -  Translate all to Translated (View all originals) < Older  Newer >
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Robert O'Callahan  
View profile  
 More options Oct 18 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: r...@cs.cmu.edu (Robert O'Callahan)
Date: 1995/10/18
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)

hba...@netcom.com (Henry Baker) wrote:

...
>* I disagree with Hans that people will want to keep their mark(copy)/alloc
>ratios high enough to keep the total memory to some some integer times the
>live data.  Memory is becoming cheaper faster than processors are becoming
>faster,

...

I don't believe this.  The doubling time for processors speeds is
definitely less than two years.  Memory costs hardly seem to be coming
down at all.

Rob
======================================================================
Robert O'Callahan (r...@cs.cmu.edu) 2nd year CMU SCS PhD
Home page: http://www.cs.cmu.edu/~roc
Three million people, sixty million sheep, one America's Cup


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Henry Baker  
View profile  
 More options Oct 19 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: hba...@netcom.com (Henry Baker)
Date: 1995/10/19
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)
In article <4635ap$...@cantaloupe.srv.cs.cmu.edu>, r...@cs.cmu.edu (Robert

O'Callahan) wrote:
> hba...@netcom.com (Henry Baker) wrote:

> >* I disagree with Hans that people will want to keep their mark(copy)/alloc
> >ratios high enough to keep the total memory to some some integer times the
> >live data.  Memory is becoming cheaper faster than processors are becoming
> >faster,

> I don't believe this.  The doubling time for processors speeds is
> definitely less than two years.  Memory costs hardly seem to be coming
> down at all.

Thanks to everyone who pointed this out to me.  Perhaps I'm looking at this
with a much longer time scale -- 35 years or so.  I'm also using the intuition
that cycle time is linearly related to feature size, while memory space is
quadratically related to feature size.  Unfortunately, this intuition doesn't
consider things like the strength of the dollar, the budgeting cycles of
major DRAM vendors, etc.  Also, the ability of Microsoft to waste memory
so prodigiously has really raised the demand curve.  (I understand that
'Bob' was going to require a minimum of 32 Mbytes.  Whatever happened to
'Bob', anyway?  Perhaps he succumbed to hype blood pressure...)

--
www/ftp directory:
ftp://ftp.netcom.com/pub/hb/hbaker/home.html


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Parenthesized syntax challenge" by Henry Baker
Henry Baker  
View profile  
 More options Oct 19 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.scheme
From: hba...@netcom.com (Henry Baker)
Date: 1995/10/19
Subject: Re: Parenthesized syntax challenge
In article <WGD.95Oct19005...@martigny.ai.mit.edu>, w...@zurich.ai.mit.edu

(Bill Dubuque) wrote:
> Cgol dates back to the late seventies at MIT LCS/AI Lab.
> Pratt wrote cgol based upon his "top-down operator precedence
> pahich is also used in Macsyma). See the Aho et. al.
> Dragon book for a reference to Pratt's original paper on
> this parser.

> I don't know if anyone has ported cgol from MacLisp to Common
> Lisp. You could probably dig up the MacLisp source.

I believe that Macsyma uses cgol as its parser.  So presumably if you
have CL Macsyma, you also have CL cgol.

--
www/ftp directory:
ftp://ftp.netcom.com/pub/hb/hbaker/home.html


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jeff Dalton  
View profile  
 More options Oct 19 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: j...@cogsci.ed.ac.uk (Jeff Dalton)
Date: 1995/10/19
Subject: Re: Parenthesized syntax challenge
clgon...@undergrad.math.uwaterloo.ca (Carl Laurence Gonsalves) writes:

>In article <DGApp8....@undergrad.math.uwaterloo.ca>,
>Carl Laurence Gonsalves <clgon...@undergrad.math.uwaterloo.ca> wrote:
>>The incredible slowness of Java is only evidence of the inefficiency of
>>garbage collection. [...]
>>I'm also not saying that garbage collection is the only reason Java is
>>slow. [...]

Which implies that it is _a_ reason, just not the only one.

>Several people seem to have misunderstood my point, so I thought I'd better
>clarify. I am *not* saying that garbage collection is slow. What I am
>saying is that Java is slow. I think most people agree on this. Java also
>has garbage collection. (any disagreements?)
>Now, when I said "evidence" perhaps I was using the wrong word. By evidence
>I mean that (statistically speaking) the fact that Java is both slow and
>has GC puts a point in the "GC is slow" bucket.

But it doesn't.  If anything, it puts a point in the "system that uses
GC is slow" bucket.  It also puts one in the "system whose name starts
with `J'" bucket.

Now, why do you think the first bucket is worth mentioning while the
second is obviously silly?  Presumably you think GC might well be a
reason Java is slow.  Moreover, that you describe the bucket as the
"GC is slow" bucket suggests that your view is actually a stronger
one.

I'm not trying to show that you think that "garbage collection is
slow", just to say something about why people might have thought
that was your view.

>The post I was originally replying to was saying that one could convince C
>and C++ programmers that GC could be efficient by pointing at Java. That's
>a silly statement since Java programs are very slow, and if anything the
>slowness of Java will make many C and C++ programmers feel that GC must be
>the cause of Java's slowness.

That's a good point.

-- jd


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "GC, Java, etc." by Al Slater
Al Slater  
View profile  
 More options Oct 19 1995, 3:00 am
Newsgroups: comp.lang.lisp
Followup-To: comp.lang.lisp
From: asla...@jocko.bri.hp.com (Al Slater)
Date: 1995/10/19
Subject: Re: GC, Java, etc.
[followups trimmed]

Carl Laurence Gonsalves (clgon...@undergrad.math.uwaterloo.ca) wrote:
: In article <activisDGJr2B....@netcom.com>,

: ActiVision <acti...@netcom.com> wrote:

: >Carl Laurence Gonsalves (clgon...@undergrad.math.uwaterloo.ca) wrote:

<snippings>

: Okay, tell me where I can get a Scheme compiler for the Amiga. :-)

I suspect that Gambit will go on it.

: But actually, I never said that "there aren't any Scheme or Lisp
: compilers". In fact, I acknowledged their existence. I even read a paper on
: Scheme->C. So I know they exist. I just haven't seen one.

Haven't looked terribly hard ;-)

: The Scheme interpreter I used the most was called "scm". I can't find any
: man-pages for it, but it looks like it's interpreted to me. It might be
: doing "incremental compiles" but the outward appearance is that of an
: interpreter. It's interactive and slow.

Compared to say what?
I've used it for all manner of things, including lashing in a PVM
interface to enable me to write apps in Scheme that use PVM routines
to communicate with other scheme / pvm processes written in C. no
bother and it went like a dream.

Kindly provide some stats if you are claiming its slow, either that or
try some of the other free lisp substrates and see how your mileage varies ;-)

: The Lisp that I use isn't CommonLisp. It's actually AutoLISP (the Lisp
: interpreter built into AutoCAD). I was developing some small CAD
: applications in AutoLisp. As far as I know there is no compiled AutoLISP
: compiler, but I haven't really bothered to check. Interpreted Lisp was fast
: enough for my purposes.

Which is essentially Xlisp based I think, which then might mean you have
the save workspace function to generate .wks files...

: The fact that I haven't actually used or seen a Scheme or Lisp compiler is
: probably dirrectly related to the fact that I don't do a lot in Scheme or
: Lisp, and I don't really worry myself by looking for Scheme and/or Lisp
: compilers. I personally don't like the parenthesized syntax of Lisp that
: much, and I find it takes me a lot longer to develop in Lisp or Scheme
: because I have to do a mental conversion. I'm certainly not saying that
: parenthesized syntax is inferior. I just don't particularly enjoy
: programming in a language like that. It's about as easy as hand coding
: PostScript I find.

Oooooh, thats trolling for flamage <grin>
I use whatever happens to float my boat for a particular project, Ive
found SCM to be easily extensible in C for what I want...and I found
it very very rapid to prototype stuff up in once you added the primitives
to put in the app specific bits (this is tantamount to heresy, I realise
this :-) that had to be glued in via C.

: Perhaps there is a similar language (like maybe Dylan, I haven't looked at
: it yet) that I would find prefferable, but Scheme and Lisp aren't my
: favorite languages. So I hope that helps you understand why I haven't
: seen Scheme or Lisp compilers: I haven't really gone loooking for them.

Hmm, having a more in depth look might persuade you I guess, but it's your
loss not to investigate what they have to offer..

: I don't think there is an AutoLISP compiler.

See above comment about save.

cheers,
al


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Cyber Surfer  
View profile  
 More options Oct 19 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.java, comp.lang.lisp
From: Cyber Surfer <cyber_sur...@wildcard.demon.co.uk>
Date: 1995/10/19
Subject: Re: GC, Java, etc.
In article <DGnB3F....@cogsci.ed.ac.uk>
           j...@cogsci.ed.ac.uk "Jeff Dalton" writes:

> What do you mean by "Allegro CommonLISP"?  The one from Franz Inc that
> runs on Suns and a number of other machines definitely includes a
> compiler to native code.  If you call everything that's incrementally
> compiled or interactive (or maybe only both) an interpreter, you're
> just wrong.  As for speed, compiled code isn't much slower than
> compiled C.

In fact, (sorry mention him again), in Writing Interactive Compilers
and Interpreters, PJ Brown calls both compilers and interpreters by the
same word: compilers. That's so much simpler, esp when the differences
may be rather complicated.

> Did you actually compile anything, by the way?

I'd argue that even tokenised Basic interpreters compile. Microsoft's
QuickBasic used a very interesting compiler, and yet it was also
interactive and incremental. Perhaps it should still be called an
interpreter because it used threaded code (an "address interpreter")?
Forth traditionally used threaded code, but some implementations use
native code. I've used both kinds, but the distinction I'd make is
between the interactive & incremental compilers, and the "batch" variety.

You could make any argument you like, if you conveniently define
enough of the terms you use to support it. That's why I like PJ Brown's
terminology so much. Just call them _all_ compilers...
--
<URL:http://www.demon.co.uk/community/index.html>
<URL:http://www.enrapture.com/cybes/namaste.html>
Current favourite word: hypersonic. As used by Fluffy.
"You can never browse enough."


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Cyber Surfer  
View profile  
 More options Oct 19 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: Cyber Surfer <cyber_sur...@wildcard.demon.co.uk>
Date: 1995/10/19
Subject: Re: GC, Java, etc.
In article <DGo5A6....@undergrad.math.uwaterloo.ca>
           clgon...@undergrad.math.uwaterloo.ca
           "Carl Laurence Gonsalves" writes:

> Okay, tell me where I can get a Scheme compiler for the Amiga. :-)

XScheme? If it isn't available for the Amiga, then it should be easy
to fix, assuming that you have a suitable C compiler.

> The Scheme interpreter I used the most was called "scm". I can't find any
> man-pages for it, but it looks like it's interpreted to me. It might be
> doing "incremental compiles" but the outward appearance is that of an
> interpreter. It's interactive and slow.

I think you mean, "It's intepreted and slow." Interactive languages
don't have to be slow. They can just as easily compile to native code.
This is just a matter of compiler technology, and any good book on
the subject should cover that. I have several...

> The Lisp that I use isn't CommonLisp. It's actually AutoLISP (the Lisp
> interpreter built into AutoCAD). I was developing some small CAD
> applications in AutoLisp. As far as I know there is no compiled AutoLISP
> compiler, but I haven't really bothered to check. Interpreted Lisp was fast
> enough for my purposes.

If AutoLISP is not fast enough for you, then you should contact AutoDesk
and let them know. Perhaps they'll do something about, but if nobody
demands better performance, then don't be suprised if you don't get it.

Please note that AutoLISP is not typical of Lisp systems in general.
It's an embedded language, and it may be assumed that performance will
depend more on AutoCAD than the language that extends it.

> The fact that I haven't actually used or seen a Scheme or Lisp compiler is
> probably dirrectly related to the fact that I don't do a lot in Scheme or
> Lisp, and I don't really worry myself by looking for Scheme and/or Lisp
> compilers. I personally don't like the parenthesized syntax of Lisp that
> much, and I find it takes me a lot longer to develop in Lisp or Scheme
> because I have to do a mental conversion. I'm certainly not saying that
> parenthesized syntax is inferior. I just don't particularly enjoy
> programming in a language like that. It's about as easy as hand coding
> PostScript I find.

Why then are you so concerned about the performance of these
languages? Is the problem the fact that you can't avoid them?
Are there any other languages that you'd rather avoid, or with
featues that you have difficulty with? If you'd like some help
in this area, please say so, so we can offer you some.

> Perhaps there is a similar language (like maybe Dylan, I haven't looked at
> it yet) that I would find prefferable, but Scheme and Lisp aren't my
> favorite languages. So I hope that helps you understand why I haven't
> seen Scheme or Lisp compilers: I haven't really gone loooking for them.

You should certainly take a look at Dylan, but I think reading some
good books on compiler theory may also help. It's a fascinating
subject, even if you never intend to write a compiler. For example,
they may help you with string handling in general (source code is
a string, and so is object code). They may also help you understand
the languages you use a little better.

> I don't think there is an AutoLISP compiler.

Ask AutoDesk about this. That's better than just assuming something,
As people say, that only makes an ASS out of U and ME.

Good luck.
--
<URL:http://www.demon.co.uk/community/index.html>
<URL:http://www.enrapture.com/cybes/namaste.html>
Current favourite word: hypersonic. As used by Fluffy.
"You can never browse enough."


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Parenthesized syntax challenge" by Bill Dubuque
Bill Dubuque  
View profile  
 More options Oct 20 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.scheme
From: w...@zurich.ai.mit.edu (Bill Dubuque)
Date: 1995/10/20
Subject: Re: Parenthesized syntax challenge
  From: hba...@netcom.com (Henry Baker)
  Date: Thu, 19 Oct 1995 17:25:13 GMT

  I believe that Macsyma uses cgol as its parser.  So presumably if you
  have CL Macsyma, you also have CL cgol.

Macsyma doesn't use cgol but does use a 'top-down operator
precedence parser', the same type of parser used in cgol.
Again, see the Dragon book for Pratt's paper. Its absolutely
trivial to implement one of the parsers in Lisp.

-Bill


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "GC, Java, etc." by nq8140700-Davison
nq8140700-Davison  
View profile  
 More options Oct 20 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.java, comp.lang.lisp
From: j...@ihnns792.ATT.COM (nq8140700-Davison)
Date: 1995/10/20
Subject: Re: GC, Java, etc.

Cyber Surfer > writes:

   In fact, (sorry mention him again), in Writing Interactive Compilers
   and Interpreters, PJ Brown calls both compilers and interpreters by the
   same word: compilers. That's so much simpler, esp when the differences
   may be rather complicated.

   > Did you actually compile anything, by the way?

   I'd argue that even tokenised Basic interpreters compile. Microsoft's
   QuickBasic used a very interesting compiler, and yet it was also
   interactive and incremental. Perhaps it should still be called an
   interpreter because it used threaded code (an "address interpreter")?
   Forth traditionally used threaded code, but some implementations use
   native code. I've used both kinds, but the distinction I'd make is
   between the interactive & incremental compilers, and the "batch" variety.

   You could make any argument you like, if you conveniently define
   enough of the terms you use to support it. That's why I like PJ Brown's
   terminology so much. Just call them _all_ compilers...

  Rather than call every thing compilers, I prefer to make the distinction
that an interpreter executes a set of instructions; a compiler translates
them into another language.  The hardware is an interpreter.  Some programs
are interpreters (that are themselves interpreted, usually by the
hardware).  Many other programs are compilers -- sometimes they translate
the program into the language that is directly interpreted by the hardware
(native code compilers), sometimes they translate the program into a
language that is interpreted by another program (or another part of the
same program).

  Using those definitions, things like ParcPlace's Smalltalk system is an
interesting beast: when a method is compiled it is translated into
byte-codes; when the method is invoked, it is translated into machine code
that is interpreted by the hardware (this translation is, presumably, only
done if it's not already in memory).  So, it is interactive, looking like
what people tend to call interpreters, but it's really a double edged
compiler  (I think they prefer "incremental compiler")!

--
Joe Davison     joseph_w_davi...@att.com


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Parenthesized syntax challenge" by Joe User
Joe User  
View profile  
 More options Oct 21 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.scheme
From: Joe User <foo...@beta.delphi.com>
Date: 1995/10/21
Subject: Re: Parenthesized syntax challenge

w...@zurich.ai.mit.edu (Bill Dubuque) wrote:
>Again, see the Dragon book for Pratt's paper. Its absolutely
>trivial to implement one of the parsers in Lisp.

>-Bill

Trivial to code, but don't forget that getting
the operator precedence values 'right' is
tricky stuff.

Other pratt parsers can be found in the symbolic
algebra package for SCM, and in the siod 3.0
release that went out to comp.sources.unix a few
years back.

But three things make the original CGOL stand out:

1. the use of dynamic binding of precedence values.
   so that the operator bindings changed as you
   entered different contexts.
2. that it was written in CGOL itself, making it
   more difficult to port to new lisp implementations.
3. the helper-functions for defining new syntax were
   quite clever. maybe too clever.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Dave Love  
View profile  
 More options Oct 22 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.scheme
Followup-To: comp.lang.lisp, comp.lang.scheme
From: Dave Love <d.l...@dl.ac.uk>
Date: 1995/10/22
Subject: Re: Parenthesized syntax challenge

>>>>> On 19 Oct 95 00:51:16, w...@zurich.ai.mit.edu (Bill Dubuque) said:

 Bill> I don't know if anyone has ported cgol from MacLisp to Common
 Bill> Lisp. You could probably dig up the MacLisp source.

A CL version and the Pratt memo are in
ftp://peoplesparc.berkeley.edu/pub FWIW.  (I think the Pratt parser in
the JACAL system is written in a Scheme subset intended to aid a CL
implementation.)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "GC, Java, etc." by Cyber Surfer
Cyber Surfer  
View profile  
 More options Oct 22 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.java, comp.lang.lisp
From: Cyber Surfer <cyber_sur...@wildcard.demon.co.uk>
Date: 1995/10/22
Subject: Re: GC, Java, etc.
In article <JWD.95Oct20083...@ihnns792.ATT.COM>
           Joseph_W_Davison@.ATT.COM "nq8140700-Davison" writes:

>   Rather than call every thing compilers, I prefer to make the distinction
> that an interpreter executes a set of instructions; a compiler translates
> them into another language.  The hardware is an interpreter.  Some programs
> are interpreters (that are themselves interpreted, usually by the
> hardware).  Many other programs are compilers -- sometimes they translate
> the program into the language that is directly interpreted by the hardware
> (native code compilers), sometimes they translate the program into a
> language that is interpreted by another program (or another part of the
> same program).

Sometimes a language system compiles _and_ interprets. What do you call
such a system? In some systems, the amount of compilation may depend on
what you do with the code, like how often you run it.

>   Using those definitions, things like ParcPlace's Smalltalk system is an
> interesting beast: when a method is compiled it is translated into
> byte-codes; when the method is invoked, it is translated into machine code
> that is interpreted by the hardware (this translation is, presumably, only
> done if it's not already in memory).  So, it is interactive, looking like
> what people tend to call interpreters, but it's really a double edged
> compiler  (I think they prefer "incremental compiler")!

Exactly. Apparently, Microsoft's QuickBasic will "recompile" the code
as you move from one state (e.g. edit) to another (e.g. run), and then
back again.

The Taos operating system uses the "virtual code" idea in its kernal,
which makes the VP code portable (as long as you use Taos). You write
your code using the VP assembler. Does that make the "compiler" part
of the OS? If you want to think of it like that, then it could be what
some people call a "throw away compiler".

ParcPlace Smalltalk uses a similar idea, as you said, but it works at
the method level. Perhaps we could call it an "incremental throw away
compiler"?

All these ideas are described by PJ Brown in Writing Interactive Compilers
and Interpreters. The difference is that he was using Basic as his example
language, and since he was writing in the mid 70s, it's not suprising
that he used lines as the unit of compilation.
--
<URL:http://www.demon.co.uk/community/index.html>
<URL:http://www.enrapture.com/cybes/namaste.html>
Current favourite word: hypersonic. As used by Fluffy.
"You can never browse enough."


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Mr. Eduardo W. Pellegrino  
View profile  
 More options Oct 23 1995, 3:00 am
Newsgroups: comp.lang.java, comp.lang.lisp, comp.lang.dylan
From: pllgr...@sunv22.ps.ic.ac.uk (Mr. Eduardo W. Pellegrino)
Date: 1995/10/23
Subject: Re: GC, Java, etc.

In article <KANDERSO.95Oct20141...@lager.bbn.com> kande...@lager.bbn.com (Ken Anderson) writes:
> I've waited a few days hoping that there would be some clarification on
> this "25x or so" figure before responding to this.  Generally when the
> runtimes of two programs that "do the same thing" differ by a factor that
> large, they are doing something wildly different.  I suspect that most of
> the difference has little to do with one program being in Lisp and the
> other in GCC.

I have tried changing C programs into perl before now, since perl's
syntax is very close to C (or can be), this enabled me to test the
relative speeds of compiled and interpretted code.  Doing really basic
stuff (floating point math) I found C 100 times faster (almost exactly
actually).  This isn't a criticism of perl, I am sure that perl would
perform much better if I was doing string manipulation, but I just
wanted to point out that in math intensive programs C or FORTRAN will
often do miles better than interpretted languages.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Garbage collection cost (was Re: Parenthesized syntax challenge)" by Tim Rentsch
Tim Rentsch  
View profile  
 More options Oct 24 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: t...@alumni.cco.caltech.edu (Tim Rentsch)
Date: 1995/10/24
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)
The article mentioned above (in-reply-to:) says:

> Memory is becoming cheaper faster than processors are
> becoming faster,

Seems factually incorrect, at least locally.  Processors have
gotten faster in the last five years, whereas RAM as pretty
much stayed constant at $40/megabyte (yes, not exact, but
pretty close) for the last five years.  Am I missing something?
Five years is a pretty long trend.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tim Rentsch  
View profile  
 More options Oct 24 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: t...@alumni.cco.caltech.edu (Tim Rentsch)
Date: 1995/10/24
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)

>  The original poster was asking whether GC could ever be faster than a
>  malloc/free implementation, not whether GC is expensive or cheap for
>  real programs.  There are clearly cases where GC is intrinsically
>  faster than malloc/free, even if in most real cases, there isn't much
>  difference between the two.

Anecdotally the answer seems to be yes.  An unpublished report
on a large (>500,000 lines) program that was converted from
explicit deallocation to an ambiguous-roots style collector
resulted in a significant speedup.  For non-disclosure
reasons I cannot give more details, except to say that this
program is a successful commercial application (both before
and after conversion to GC), and the same group of programmers
worked on both versions (ie, programmer variation would seem
to be at best a second-order factor).

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Hans Boehm  
View profile  
 More options Oct 24 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: bo...@parc.xerox.com (Hans Boehm)
Date: 1995/10/24
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)

hba...@netcom.com (Henry Baker) writes:
>* I disagree with Hans that people will want to keep their mark(copy)/alloc
>ratios high enough to keep the total memory to some some integer times the
>live data.  Memory is becoming cheaper faster than processors are becoming
>faster, so it will continue to be more appealing to allocate enough memory
>to keep the fraction of the time spent in GC at a nearly negligible level
>-- kind of like the current cost of 'refreshing DRAMs' (you didn't know
>about this?)  As a result, the 'sweep cost' _could_ (without clever
>programming) become a significant fraction of GC time, although it would
>still be a negligible cost overall.

Paul and others have already responded to much of Henry's message.
But I think there's an important issue here.  My experience has been that
memory requirements of current garbage collected systems often prevent
their acceptance.  A significant contributing factor are GC algorithms
that are much more generous than necessary in their memory use.  The
reasons I don't think this is acceptable:

1.  I vaguely recall that memory was around $20/MB around 1991
(corrections appreciated).  The current price is around $30/MB.
Processors have gotten much faster since then.

2. As a result, I claim the average PC is grossly underconfigured with
memory.  Most PCs would gain much more from a memory upgrade than a
processor upgrade, if they're running anything beyond DOS.  RISC
workstations tend to be configured a bit more reasonably, but users
expect something in return for the extra money they paid for
memory.

3. Not all programs are designed to take over a machine.  Many programs
are designed to run in the background while the machine is used for
something else.  Few users will be happy with a large memory footprint
background program (or 20 of them) while they are running SML of NJ,
or some CAD program, or Microsoft Word, or whatever, in the foreground.

4. Users expect that if your machine has N megabytes, you should be
able to run an application that has nearly N megabytes live data without
paging.  If you tell them the real limit is .7N they'll grumble, but
they might accept it.  If you tell them it's N/5, you've lost.

I will agree that you should be able to tune the heap size.  But my
experience is that few users ever do such tuning.

Hans-J. Boehm
(bo...@parc.xerox.com)
Standard disclaimer ...


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
William Paul Vrotney  
View profile  
 More options Oct 26 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: vrot...@netcom.com (William Paul Vrotney)
Date: 1995/10/26
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)

In article <hbaker-2510951016220...@10.0.2.15> hba...@netcom.com (Henry Baker) writes:

>   In article <46jb8v$...@news.parc.xerox.com>, bo...@parc.xerox.com (Hans
>   Boehm) wrote:

>   > 2. As a result, I claim the average PC is grossly underconfigured with
>   > memory.  Most PCs would gain much more from a memory upgrade than a
>   > processor upgrade, if they're running anything beyond DOS.  RISC
>                                                                 ^^^^
>   > workstations tend to be configured a bit more reasonably, but users
>   > expect something in return for the extra money they paid for
>   > memory.

>   The RISC 'revolution' has increased memory requirements for code by about
>   a factor of two.

Good point.  I did some tests (years ago) by compiling the same program on a
68040 and then a Sparc and you are correct about the factor of two.  This
was for small programs.  What I noticed was that as the programs got larger
the factor got larger (than two).  This was just something that I noticed
and did not prove any results.  Also, the CISC compiler may have been better
than the RISC compiler for larger programs.  But it was enough to make me
start wondering about all the hype over RISC architectures at the time.

--

William P. Vrotney - vrot...@netcom.com


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John D. Mitchell  
View profile  
 More options Oct 26 1995, 3:00 am
Newsgroups: comp.lang.lisp, comp.lang.dylan, comp.lang.java
From: johnm@mitchell (John D. Mitchell)
Date: 1995/10/26
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)

In article <QOBI.95Oct26104...@qobi.ai>, Jeffrey Mark Siskind wrote:
>I'm told that on DEC ALPHAs, which use 64 bit points, that memory
>requirements are doubled yet again.

>Data structure size affects not only paging performance but also caching
>performance. Has anybody done a study to see what the tradeoffs are
>between the increased instruction cost of CDR coding vs the potential
>decreased cache-miss ratio? How would that change if minimal CDR-coding
>hardware were added to RISC processors?

Yep.  Work on the Titanium project at UC Berkeley has done some work so far
on 'packed linked lists', packed binary trees (B-trees), etc. to look at
dealing with the multi-level memory hierarchies that exist today and will
exist in the future.  Some very prelimary numbers on a couple of existing
machines with just packed LLs showed pretty clearly that performance
increased either a little below or a little above 2X where the data object
size was around the cache line size.

Their web page is http://HTTP.CS.Berkeley.EDU/projects/titanium/ though I
haven't looked at it yet.  The professors involved are A. Aiken, S. Graham,
and K. Yelick.

Hope this helps,
                John


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Corry  
View profile  
 More options Oct 26 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
Followup-To: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: e...@kroete2.freinet.de (Erik Corry)
Date: 1995/10/26
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)

Henry Baker (hba...@netcom.com) wrote:

: I would advise using .-relative addressing for all pointers (perhaps some
: C compiler vendor/GNU is listening), and start using VM compression.  Once you
: have encoded pointers as _relative_ addresses instead of _absolute_
: addresses, then VM compression will work better.

Could you explain how using .-relative addressing improves compression?
The way I understood it VM compression (a la Mac RamDoubler) only works
really well if the pages to be compressed consist mostly of zeros.

--
[SCSI] ist ja bekanntlich so kompliziert, dass es nur die fuer ihre Bastelwut
beruechtigten Apple-User benutzen. -- Detlef Grell, c't 8/95
--
Erik Corry ehco...@inet.uni-c.dk


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Hans Boehm  
View profile  
 More options Oct 27 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: bo...@parc.xerox.com (Hans Boehm)
Date: 1995/10/27
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)

hba...@netcom.com (Henry Baker) writes:
>The RISC 'revolution' has increased memory requirements for code by about
>a factor of two.

My impression is that code density varies a lot between CISC processors,
and that code density for "32 bit" code on an X86 is nothing to write
home about either.  But RISC code is likely to be larger.

>Furthermore, due to RISC requirements for data alignment, RISC _data_ has
>also gotten much less dense -- e.g., I'm not aware of any RISC Lisps which
>do 'cdr-coding' anymore.  I would imagine that the RISC revolution has
>expanded data requirements by perhaps 1.5X.

I don't know about Lisp implementations.  For C code, I don't believe
this makes an appreciable difference.  Borland and Microsoft C/C++
compilers have different defaults for alignment.  The Microsoft compiler
uses RISC-like alignments by default (which makes sense
for time performance reasons) and the Borland compiler uses one byte
alignments by default (probably for historical reasons).  I suspect
most important structures are manually aligned so they come out the
same way in either case.  But then the fields are also likely to be manually
ordered to minimize loss, so even the loss over, say, a VAX representation
is likely to be minimal.

>Therefore, unless you start using some form of VM
>compression on code pages, you are probably in worse shape than before
>RISC, because you are going to page fault more often than a CISC architecture
>with the same amount of memory, and this is a very non-linear phenomenon.
>(RISC processors should be very good at doing compression, so the overall
>cost of this should be quite small.)
>I would advise using .-relative addressing for all pointers (perhaps some
>C compiler vendor/GNU is listening), and start using VM compression.

Please don't do that for C; you'll break conservative GC completely.
(You'll also break at least all C code that calls third party libraries,
and I doubt you'll have an ANSI conforming compiler.  How do you handle
union assignments?  But I have my priorities straight :-))

>Once you
>have encoded pointers as _relative_ addresses instead of _absolute_
>addresses, then VM compression will work better.

Presumably the right place to convert to relative pointers is in the
compressor?

Hans-J. Boehm
(bo...@parc.xerox.com)
Standard disclaimer ...


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Henry Baker  
View profile  
 More options Oct 27 1995, 3:00 am
Newsgroups: comp.lang.lisp, comp.lang.dylan, comp.lang.java
From: hba...@netcom.com (Henry Baker)
Date: 1995/10/27
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)

In article <QOBI.95Oct26104...@qobi.ai>, Q...@CS.Toronto.EDU wrote:
> I'm told that on DEC ALPHAs, which use 64 bit points, that memory requirements
> are doubled yet again.

> Data structure size affects not only paging performance but also caching
> performance. Has anybody done a study to see what the tradeoffs are between
> the increased instruction cost of CDR coding vs the potential decreased
> cache-miss ratio? How would that change if minimal CDR-coding hardware were
> added to RISC processors?

I would believe that some sort of 'pointer-swizzling' idea might work better
than checking the pointers on every access.

--
www/ftp directory:
ftp://ftp.netcom.com/pub/hb/hbaker/home.html


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Paul Wilson  
View profile  
 More options Oct 27 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: wil...@cs.utexas.edu (Paul Wilson)
Date: 1995/10/27
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)
In article <46rkuv$...@news.parc.xerox.com>,

Hans Boehm <bo...@parc.xerox.com> wrote:
>hba...@netcom.com (Henry Baker) writes:

>>The RISC 'revolution' has increased memory requirements for code by about
>>a factor of two.

>My impression is that code density varies a lot between CISC processors,
>and that code density for "32 bit" code on an X86 is nothing to write
>home about either.  But RISC code is likely to be larger.

The number I've heard bandied about is about 1.3 times CISC size, on
average.  I think early RISC compilers generated more bloated code,
partly because they weren't mature (eventually optimizers got better
at reducing code size without much speed penalty), and partly because
some early RISC architectures (e.g., MIPS R2000?) required a lot of NOPs
to ensure that pipeline constraints were preserved.  

My impression is that everybody's using interlocked architectures that
just stall as necessary, rather than requiring NOPS, because that makes
it easier to design multiple generations of binary-compatible RISCs.

>>Furthermore, due to RISC requirements for data alignment, RISC _data_ has
>>also gotten much less dense -- e.g., I'm not aware of any RISC Lisps which
>>do 'cdr-coding' anymore.  I would imagine that the RISC revolution has
>>expanded data requirements by perhaps 1.5X.

I don't think CDR-coding would be worthwhile on modern CISCs either.
(Though Henry may have been talking about counterfactual "Lisp-oriented
modern CISCs", which haven't actually been built, partly due to marketing
issues.)

At any rate, I don't think microcode would help any longer---CISC machines
are going to have a RISC core, and you're going to want to do loads and
stores in a single cycle.  I'm not sure what impact CDR-coding support
would have on a machine with single-cycle loads and stores.  I'm not
sure what should go into which parts of the hardware, and whether you
can do it without an impact on the cycle time, at least in the uncommon
case.  Then again, I'm not sure it's a problem---I haven't worked it out.

I'm also not sure how big a win CDR-coding is in a modern dialect of
Lisp, programmed in a modern, object-oriented style, or whether programming
styles should change.  I wouldn't be surprised if conventional Lisp
list structures get less common over time, as people come up with
alternative data structures using object-oriented features or whatever.

There's some data (from Bob Shaw's and Ben Zorn's theses) that bear
on this, but there are lots of issues.  (It appears that most object-oriented
Lisp programs still use in the ballpark of half their memory for list cells.
But that may be an artifact of poor compilers for object systems, and there
might be a trend toward more and more object-orientedness as it gets
relatively cheaper.)

At any rate, on stock hardware CDR coding is a big lose speedwise.  Compressed
VM is more general, because it can compress pointers in other kinds of
data structures, as well as compressing nonpointer data.

> [ ... For C ] I suspect
>most important structures are manually aligned so they come out the
>same way in either case.  But then the fields are also likely to be manually
>ordered to minimize loss, so even the loss over, say, a VAX representation
>is likely to be minimal.

>>Therefore, unless you start using some form of VM
>>compression on code pages, you are probably in worse shape than before
>>RISC, because you are going to page fault more often than a CISC architecture
>>with the same amount of memory, and this is a very non-linear phenomenon.
>>(RISC processors should be very good at doing compression, so the overall
>>cost of this should be quite small.)

Yes, if you have very fast compression algorithms.

>>I would advise using .-relative addressing for all pointers (perhaps some
>>C compiler vendor/GNU is listening), and start using VM compression.

VM compression is a good idea, but relative addressing isn't necessary for it
to work quite well;  pointers are highly compressible if you have any
kind of decent locality in your data structures.

>Please don't do that for C; you'll break conservative GC completely.
>(You'll also break at least all C code that calls third party libraries,
>and I doubt you'll have an ANSI conforming compiler.  How do you handle
>union assignments?  But I have my priorities straight :-))
>>Once you
>>have encoded pointers as _relative_ addresses instead of _absolute_
>>addresses, then VM compression will work better.
>Presumably the right place to convert to relative pointers is in the
>compressor?

Yes.  That's what we do in a compressed VM system we're developing.
Actually, we don't bother to convert to relative explicitly, we just notice
that the upper and middle bits of a lot of pointers are similar to upper and
middle bits of lots of other nearby pointers, and exploit that.

>Hans-J. Boehm
>(bo...@parc.xerox.com)
>Standard disclaimer ...

--
| Paul R. Wilson, Comp. Sci. Dept., U of Texas @ Austin (wil...@cs.utexas.edu)
| Papers on memory allocators, garbage collection, memory hierarchies,
| persistence and  Scheme interpreters and compilers available via ftp from
| ftp.cs.utexas.edu, in pub/garbage (or http://www.cs.utexas.edu/users/wilson/)      

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Henry Baker  
View profile  
 More options Oct 28 1995, 3:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: hba...@netcom.com (Henry Baker)
Date: 1995/10/28
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)
In article <DH25zB...@kroete2.freinet.de>, ehco...@inet.uni-c.dk (Erik

Corry) wrote:
> Henry Baker (hba...@netcom.com) wrote:

> : I would advise using .-relative addressing for all pointers (perhaps some
> : C compiler vendor/GNU is listening), and start using VM compression.
Once you
> : have encoded pointers as _relative_ addresses instead of _absolute_
> : addresses, then VM compression will work better.

> Could you explain how using .-relative addressing improves compression?
> The way I understood it VM compression (a la Mac RamDoubler) only works
> really well if the pages to be compressed consist mostly of zeros.

If you allocate a list in sequence, and they are allocated contiguously,
then one of the fields will point to a location .+n bytes subsequent.
If these are relative pointers, then they will all be 'n', so a reasonable
compression scheme -- e.g., gzip -- should be able to compress such a
sequence.

I don't know how sophisticated RamDoubler's compression scheme is.

--
www/ftp directory:
ftp://ftp.netcom.com/pub/hb/hbaker/home.html


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Oct 29 1995, 2:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: Erik Naggum <e...@naggum.no>
Date: 1995/10/29
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)
[Henry Baker]

|   I would advise using .-relative addressing for all pointers (perhaps
|   some C compiler vendor/GNU is listening), and start using VM
|   compression.

[Hans Boehm]

|   Please don't do that for C; you'll break conservative GC completely.
|   (You'll also break at least all C code that calls third party
|   libraries, and I doubt you'll have an ANSI conforming compiler.  How do
|   you handle union assignments?  But I have my priorities straight :-))

this is odd.  to build shared objects (libraries) under, e.g., SunOS 4,
so-called "position-independent code" must be emitted by the assembler, and
special considerations must be followed by the compiler.  (not all C code
can be compiled into shared objects, but I don't know what the conditions
are.)  given this, are you saying that shared objects would cause the
compiler (or library) not to be conforming to ANSI C?  if so, this is,
IMNSHO, a problem in the standard (ISO C, actually) that should be fixed.

#<Erik 3023918552>
--
a good picture may well be worth a thousand words, but on the WWW,
even bad imagemaps cost tens of thousands of words.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Mike Christiansen  
View profile  
 More options Oct 29 1995, 2:00 am
Newsgroups: comp.lang.dylan, comp.lang.lisp, comp.lang.java
From: mi...@metronet.com (Mike Christiansen)
Date: 1995/10/29
Subject: Re: Garbage collection cost (was Re: Parenthesized syntax challenge)

bo...@parc.xerox.com (Hans Boehm) wrote:
>1.  I vaguely recall that memory was around $20/MB around 1991
>(corrections appreciated).  The current price is around $30/MB.
>Processors have gotten much faster since then.

Yea..This is one is a real problem. Why haven't dram prices tracked
processors? I beleive that it was a bit earlier than 1991, however, I
beleive that it was the far-east producers dumping on our market to
drive out all of the competition and now have a monopoly. They are
keeping prices high, but not so high that the uproar causes the US
Goverment  to do something about it.  And why haven't the US companies
gotten back into the market? Well they are staring to (IBM & TI) but
always with Japanise partners. I read some time ago that the US has
given up on the DRAM market. But if there is money to be made, why
isn't the US Goverment protecting US-based companies from the unfair
traiding practices of other countries?

Just my two cents worth.
Mike
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Mike Christiansen
mi...@metronet.com


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Messages 26 - 50 of 57 < Older  Newer >
« Back to Discussions « Newer topic     Older topic »