[racket] DrRacket never uses more than 1 GB?

From: Greg Hendershott (greghendershott at gmail.com)
Date: Tue Jul 13 19:39:05 EDT 2010

OK mister smartypants. :)

I set the limit back to 1024 MB.

And ... it crashed again DrRacket again.

Just like it did back when I decided to try setting it to "unlimited"
in the first place, to avoid this happening.

Seriously, is the idea that users are supposed to:
[1] Understand the maximum memory for their system. (Which isn't
documented, but on Win64 is 2 GB ... unless it is actually 1 GB.)
[2] Set the DrRacket memory limit to whatever value they guessed in step 1.
[3] Watch DrRacket abend and lose their work, anyway?

I'm not trying to be a PITA, I genuinely don't understand the intended usage.

Also I guess I'm frustrated that I have a memory utilization issue
which is my own darn fault, but I have no clear mental model, yet,
what the heck is happening and how to track it down. In which regard I
suppose I feel like an Alan Perlis punch-line: A programmer who knows
the value, and actually DOES want to understand the cost ... but
can't. Like, if I have to ask the price, I can't afford it ... ?

On Tue, Jul 13, 2010 at 6:23 PM, Robby Findler
<robby at eecs.northwestern.edu> wrote:
> This is what the memory limit is for! If you disable it, you no longer
> have that barrier. :)
> Robby
> On Tue, Jul 13, 2010 at 5:07 PM, Greg Hendershott
> <greghendershott at gmail.com> wrote:
>> A couple more observations:
>> [1] I'm spending a lot of time staring at the GC log scrolling by in
>> DrRacket. I'm seeing many examples where the amount collected is
>> negative. Ex:
>> GC [minor] at 1028656788 bytes; 4636116 collected in 47 msec
>> GC [minor] at 1025017408 bytes; -3872 collected in 15 msec
>> GC [major] at 1025021280 bytes; 91780692 collected in 2200 msec
>> Is this a bug or as-expected?
>> [2] When it eventually dies near 1 GB, it does so with two dialog boxes:
>> Dialog #1
>> Caption: "Out of Memory"
>> Body: "Racket virtual machine out of memory. Aborting".
>> Press OK.
>> Dialog #2
>> Caption: "Microsoft Visual C++ Runtime Library"
>> Body:
>> "Runtime Error!
>> Program: C:\Program Files (x86)\Racket\DrRacket.exe
>> This application has requested the Runtime to terminate it in an unusual way.
>> Please contact the application's support team for more information".
>> And then the whole DrRacket 5.0 application is killed.  (Same with
>> DrScheme 4.2.5).
>> It would be nice if the DrRacket environment could survive, i.e. if
>> there was a barrier between the IDE and the program being run.
>> On Tue, Jul 13, 2010 at 3:31 PM, Robby Findler
>> <robby at eecs.northwestern.edu> wrote:
>>> On Tue, Jul 13, 2010 at 2:05 PM, Greg Hendershott
>>> <greghendershott at gmail.com> wrote:
>>>> Hey wait a second. Aren't Racket pointers a couple bits less than 32?
>>>> Like, say, 30 bits?  And that's 1 GB address space?   Q.E.D. ... ?
>>> Racket uses the "odd" pointers to represent small integers, but I
>>> don't think that matters much here, since those pointers aren't
>>> generally useful (as a pointer incrementing by one (when viewed as an
>>> integer) moves to the next byte, not the next word).
>>> Robby

Posted on the users mailing list.