VM and memory on win32

Mathieu mathk.sue at gmail.com
Thu Sep 14 22:09:36 UTC 2006


Ramon Leon a écrit :
> Hi, I was playing around with some rather large data sets and seemed to have
> run into an issue with the 3.7.1 VM, which as far as I know is the latest
> and greatest for windows.  It seems that the VM allocates memory
> dynamically, ignores the memory: command line switch, and memory seems
> capped somewhere around 900 meg.  Once I get up to about 900 or so, I get...
> 
> Space is low
> Warning! Squeak is almost out of memory!
> 
> On several occasions, soon after this warning, the VM just died, costing me
> some data.  This isn't a killer, I just moved my data into a database and
> worked with it from there, but I was disappointed that I couldn't simply
> work with the data in memory as pure objects.  It's just temporary data, not
> intended for long term storage, so I figured I'd just play in a workspace
> and toss it out when done.
> 
> My issues aside, I was wondering why Squeak can't use all available memory
> when necessary, I have 2gigs, why should the VM be limited to 900 or so
> megs?  I was on #squeak IRC channel discussing this and someone mentioned
> the crashing could be a bug related to int's vs. unsigned int's somewhere in
> the VM.  So if anyone has any answers to either issue, the memory limit, or
> the fatal crashing, I'd love to hear about it.
> 
> 

This may be cause beceause all avaliable pointer are use.
>From what I know each object are represente by a pointer instance of SmallInteger (except
SmallInteger instance who have no pointer, it is himself) (see the The missing chapters of the blue
Book ch. 26)
So the maximum memorie size is:

(SmallInteger maxVal) / (1024 * 1024)

Wich give you about 1000MB of memorie

But this is not official is just my insight.
If you want I have recently compile a 3.8 VM base on win32-3.8b4-source.

Math




More information about the Squeak-dev mailing list