Low Memory Warning although enough memory is available

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Low Memory Warning although enough memory is available

r2ruyu-nana
Hiya!

We encounter problems with low memory warnings ("Space is low", "Warning!
Squeak is almost out of memory!").

Setup here:
  * Squeak 3.9 (tested also with 4.2)
  * Win32
  * 2GB of memory

We can reproduce the problem here with:

        bmp1 := Form fromFileNamed: 'hauptabschnitt_lang.bmp'.
        bmp2 := Form fromFileNamed: 'hauptabschnitt1.bmp'.

'hauptabschnitt_lang.bmp' is 24 bit, 273,8MB file.
'hauptabschnitt1.bmp' is 24 bit, 95,8MB file.

'Doing" the first line works, doing the second popups the low memory warning.
With the task manager we see Squeak using about 412MB after the first line.
There should be enough memory left for Squeak.

How to make both lines work? As stated in the wiki [1], the "-memory: N"
argument is out of date. Indeed, Squeak behaves equal with different N (we
tried 512, 768, 1024, 2048; but it's interesting that this parameter is still
accepted by Squeak 3.9).

I tried Squeak 4.2 but it's the same (although it needs overall 398MB after
the first line).

(By the way, executing the first line above is quite fast - but doing the same
with equivalent png-file is about 5x slower - how come?)

Any hints on this?


Best regards,
   r2ruyu-nana ;)


[1] http://wiki.squeak.org/squeak/981

Reply | Threaded
Open this post in threaded view
|

Re: Low Memory Warning although enough memory is available

David T. Lewis
On Sat, Feb 26, 2011 at 03:15:23PM +0100, [hidden email] wrote:

> Hiya!
>
> We encounter problems with low memory warnings ("Space is low", "Warning!
> Squeak is almost out of memory!").
>
> Setup here:
>   * Squeak 3.9 (tested also with 4.2)
>   * Win32
>   * 2GB of memory
>
> We can reproduce the problem here with:
>
> bmp1 := Form fromFileNamed: 'hauptabschnitt_lang.bmp'.
> bmp2 := Form fromFileNamed: 'hauptabschnitt1.bmp'.
>
> 'hauptabschnitt_lang.bmp' is 24 bit, 273,8MB file.
> 'hauptabschnitt1.bmp' is 24 bit, 95,8MB file.
>
> 'Doing" the first line works, doing the second popups the low memory warning.
> With the task manager we see Squeak using about 412MB after the first line.
> There should be enough memory left for Squeak.
>
> How to make both lines work? As stated in the wiki [1], the "-memory: N"
> argument is out of date. Indeed, Squeak behaves equal with different N (we
> tried 512, 768, 1024, 2048; but it's interesting that this parameter is still
> accepted by Squeak 3.9).
>
> I tried Squeak 4.2 but it's the same (although it needs overall 398MB after
> the first line).
>
> (By the way, executing the first line above is quite fast - but doing the same
> with equivalent png-file is about 5x slower - how come?)
>
> Any hints on this?

I tried making a 393 MB bitmap file, and was able to load this using
up-to-date VMs on Linux (both the standard VM and Cog). There may be
differences on Windows (I did not test this), but I note that the standard
Windows VM is scheduled for an update in the next couple of weeks, so
this may change.  You may want to try a Cog VM for Windows (which is
probable a bit more up to date right now) and see if this makes a
difference.

On the other hand, with bitmaps of this size you may be encountering
limitations of the current object memory and VM. When you read the BMP
file into a form, the contents of the file are loaded into a single
instance of Bitmap. This Bitmap object consumes more space that the bitmap
file itself, because the 24 bit pixels are stored in 32 bit slots in the
Bitmap. That means that when you try to load a 274MB bitmap file, you will
be allocating an Bitmap that uses more than 274 MB of space in your object
memory. The current Squeak VMs can allocate single objects on the order
of about 1GB, plus or minus a bit depending on what version of VM you are
running and which way the wind is blowing. There could be differences in
the support code that may cause this limit to be different on different
operating systems (I only tried it on Linux).

FWIW, the largest single objects that I have been able to allocate are
on a standard VM on Linux with a 64-bit object memory. In this case I
can allocate rather large string objects:
  (String new: 1000000000) size ==> 1000000000

For objects larger than this, additional changes will be needed to the
VM and object memory (I believe that Eliot has plans to pursue this at
some point).

HTH,
Dave


Reply | Threaded
Open this post in threaded view
|

Re: Low Memory Warning although enough memory is available

Levente Uzonyi-2
In reply to this post by r2ruyu-nana
On Sat, 26 Feb 2011, [hidden email] wrote:

> Hiya!
>
> We encounter problems with low memory warnings ("Space is low", "Warning!
> Squeak is almost out of memory!").
>
> Setup here:
>  * Squeak 3.9 (tested also with 4.2)
>  * Win32
>  * 2GB of memory
>
> We can reproduce the problem here with:
>
> bmp1 := Form fromFileNamed: 'hauptabschnitt_lang.bmp'.
> bmp2 := Form fromFileNamed: 'hauptabschnitt1.bmp'.
>
> 'hauptabschnitt_lang.bmp' is 24 bit, 273,8MB file.
> 'hauptabschnitt1.bmp' is 24 bit, 95,8MB file.
>
> 'Doing" the first line works, doing the second popups the low memory warning.
> With the task manager we see Squeak using about 412MB after the first line.
> There should be enough memory left for Squeak.
>
> How to make both lines work? As stated in the wiki [1], the "-memory: N"
> argument is out of date. Indeed, Squeak behaves equal with different N (we
> tried 512, 768, 1024, 2048; but it's interesting that this parameter is still
> accepted by Squeak 3.9).
>
> I tried Squeak 4.2 but it's the same (although it needs overall 398MB after
> the first line).

IIRC the Windows VM can't use more than 512MB. According Dave's mail,
you're trying to allocate 530MB+ memory (1.33 * 398).

>
> (By the way, executing the first line above is quite fast - but doing the same
> with equivalent png-file is about 5x slower - how come?)

It takes a while to decompress the contents.


Levente

>
> Any hints on this?
>
>
> Best regards,
>   r2ruyu-nana ;)
>
>
> [1] http://wiki.squeak.org/squeak/981
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Low Memory Warning although enough memory is available

r2ruyu-nana
Thank you for your answers. :)

Best regards,
   r2ruyu-nana


On Sunday 27 February 2011 04:06:36 Levente Uzonyi wrote:

> On Sat, 26 Feb 2011, [hidden email] wrote:
> > Hiya!
> >
> > We encounter problems with low memory warnings ("Space is low", "Warning!
> > Squeak is almost out of memory!").
> >
> > Setup here:
> >  * Squeak 3.9 (tested also with 4.2)
> >  * Win32
> >  * 2GB of memory
> >
> > We can reproduce the problem here with:
> > bmp1 := Form fromFileNamed: 'hauptabschnitt_lang.bmp'.
> > bmp2 := Form fromFileNamed: 'hauptabschnitt1.bmp'.
> >
> > 'hauptabschnitt_lang.bmp' is 24 bit, 273,8MB file.
> > 'hauptabschnitt1.bmp' is 24 bit, 95,8MB file.
> >
> > 'Doing" the first line works, doing the second popups the low memory
> > warning. With the task manager we see Squeak using about 412MB after the
> > first line. There should be enough memory left for Squeak.
> >
> > How to make both lines work? As stated in the wiki [1], the "-memory: N"
> > argument is out of date. Indeed, Squeak behaves equal with different N
> > (we tried 512, 768, 1024, 2048; but it's interesting that this parameter
> > is still accepted by Squeak 3.9).
> >
> > I tried Squeak 4.2 but it's the same (although it needs overall 398MB
> > after the first line).
>
> IIRC the Windows VM can't use more than 512MB. According Dave's mail,
> you're trying to allocate 530MB+ memory (1.33 * 398).
>
> > (By the way, executing the first line above is quite fast - but doing the
> > same with equivalent png-file is about 5x slower - how come?)
>
> It takes a while to decompress the contents.
>
>
> Levente
>
> > Any hints on this?
> >
> >
> > Best regards,
> >
> >   r2ruyu-nana ;)
> >
> > [1] http://wiki.squeak.org/squeak/981