[Pharo-project] out of memory - cog on windows

Tudor Girba tudor.girba at gmail.com
Tue May 10 09:34:23 CEST 2011


Hi,

I am back with some more input on the matter. We played with it, and found that basically any image that goes beyond something like 200MB limit (or maybe it's the number of objects), will not open on Windows.

I would need some help on this. Has nobody else hit this wall, or is it that I am doing something wrong?

One scenario that we used to reproduce the problem looks like this:
1. Take a Moose image:
http://hudson.moosetechnology.org/job/moose-latest-dev/lastSuccessfulBuild/artifact/moose/*zip*/moose.zip
2. Run:
1 to: 3 do: [ :i | MooseScripts createModelForConfigurationOfMoose ]
This will basically create some 850000 objects and will get the image to some 400+MB
3. Save and quit the image
4. Reopen it

A ready-made image with the result of this can be found here:
http://dl.dropbox.com/u/18323746/Tmp/moose-case-study-windows-problem.zip

This works well on Mac, but on Windows when you reopen the image, you get the out of memory message.

Cheers,
Doru



On 27 Apr 2011, at 21:52, Alain_Rastoul wrote:

> Hi Tudor,
> 
> Sad that it didn't help you :-(.
> You should contact Igor and see if he is still ok to play with your image, 
> he may certainly be able to find something.
> I will try to find this too, because I experienced a similar problem loading 
> an image saved with the vm I sent you (2G) in the standard vm (512M) after 
> I've  loaded data from odbc , the saved image was about 300 Mo and I had a 
> memory error loading it with the standard vm. Unfortunatly I didn't keep 
> this image, I reopend it with the 2G vm, found the hanging references and 
> reduced it to 40M, but I think I could reproduce it.
> You can also send me your image (upload at at http://dl.free.fr with a 
> notification  email - see the web page) , I'll have a try with your image 
> too.
> 
> 
> Cheers,
> Alain.
> 
> "Tudor Girba" <tudor.girba at gmail.com> a écrit 
> dans le message de news: 3D8DCC66-E9DD-4AEB-AEC0-E10C615387C7 at gmail.com...
> Hi Alain,
> 
> Thanks for the VM with more memory. I tried it, but it looks like we still 
> get the same message.
> 
> Where else can the problem be?
> 
> Cheers,
> Doru
> 
> 
> 
> On 21 Apr 2011, at 23:52, Alain_Rastoul wrote:
> 
>> (And of course Tudor, I forgot to mention it but I can send you this vm if 
>> you need)
>> 
>> "Alain_Rastoul" 
>> <alr.dev-GANU6spQydw at public.gmane.org> a écrit dans 
>> le message de news: ioq86o$69j$1 at dough.gmane.org...
>> I thought he was able to start it on a Mac that's why I suggested to this 
>> on a Mac and see if memory consumption was reduced.
>> BTW I have rebuild a cog vm with 2Gb ram for MAX_MEMORY and it runs ok on 
>> my 1Gb netbook
>> 
>> "Mariano Martinez Peck" 
>> <marianopeck at gmail.com> a écrit dans le 
>> message de 
>> news:BANLkTikuk1jRV34=u2pzTFx5+2qWgjrbCQ at mail.gmail.com...
>> Alain: as far as I understood, he cannot even start the image...so he 
>> won't be able to open a workspace and evaluate something.
>> 
>> Doru, if you can evaluate something in a workspace, you may also try 
>> SpaceTally new printSpaceAnalysis
>> and then check the STspace.text  that is next to the image. That way you 
>> acn see if there are certain classes that have a lot of instances.
>> 
>> Can you evaluate "Smalltalk garbageCollect " and tell me the answer?  just 
>> curious....
>> 
>> thanks
>> 
>> mariano
>> 
>> On Thu, Apr 21, 2011 at 10:36 PM, Alain_Rastoul 
>> <alr.dev at free.fr> wrote:
>> Mmm, you are right, in old squeak versions, there was a parameter
>> -memory: xx (xx inMB)
>> but I don't know if it is still in use.
>> 
>> BTW there must be some hanging references in memory and perhaps youd 
>> should
>> do some PointerFinder on it.
>> A very handy script I found (on Ramon Leon's blog or elsewhere I don't
>> remember) could help you.
>> You can try it in a workspace and see if it reduces your memory usage 
>> (after
>> save and quit)
>> comment unknown or unwanted commands :
>>  | tasks |
>>   tasks := OrderedCollection new
>>               add: [MCFileBasedRepository flushAllCaches];
>>               add: [WARegistry clearAllHandlers];
>>              " add: [SMSqueakMap default clearCaches];"
>>               add: [Smalltalk removeEmptyMessageCategories];
>>               add: [Workspace
>>                       allSubInstancesDo: [:each | each setBindings:
>> Dictionary new]];
>>              " add: [Undeclared removeUnreferencedKeys];"
>>              " add: [Categorizer sortAllCategories];"
>>               add: [ODBCConnection cleanAll];
>>               add: [Symbol compactSymbolTable];
>>              " add: [ReleaseBuilderDeveloper new fixObsoleteReferences];"
>>               add: [Smalltalk garbageCollectMost];
>>               add: [Smalltalk garbageCollect ];
>>               add: [Smalltalk garbageCollect ];
>>               add: [Smalltalk garbageCollect ];
>> add: [EventManager actionMaps keys do: [:each| EventManager
>> releaseActionMapFor: each] ];
>> add: [Debugger closeAllDebuggers];
>> add:[Debugger allInstances do: [ :d | d release ] ];
>> 
>>                yourself.
>>   UIManager default
>>       informUserDuring: [:bar | tasks
>>               do: [:block |
>>                   bar value: block printString.
>>                   [block value]
>>                       on: Error
>>                       do: [:error | Transcript show: error;
>>                                cr]]].
>> 
>> Regards
>> Alain
>> 
>> "Tudor Girba" <tudor.girba at gmail.com> a 
>> écrit
>> dans le message de news: 
>> 6AA1F065-3996-433B-AB7C-1640C08D5A7B-Re5JQEeQqe9Ui4FbrNnSJA at public.gmane.org
>> Hi,
>> 
>> Should I to understand that the only way to enable more memory is to
>> recompile the VM? Does that mean that there is no way to pass this
>> information as a parameter like we can on Mac?
>> 
>> The problem is that I cannot recompile the VM because I have no access to 
>> a
>> Windows machine. Is there one available that provides more memory?
>> 
>> Cheers,
>> Doru
>> 
>> 
>> On 21 Apr 2011, at 22:09, Alain_Rastoul wrote:
>> 
>>> Hi Tudor,
>>> 
>>> There is a constant in sqWin32Alloc.h (platforms\win32\vm) :
>>> #define MAX_VIRTUAL_MEMORY 512*1024*1024
>>> you can change it to whatever you want and rebuild the vm,
>>> for exzmple give all the available memory less 256 M .
>>> 
>>> HTH
>>> 
>>> Regards
>>> Alain
>>> 
>>> "Tudor Girba" <tudor.girba at gmail.com> a
>>> écrit
>>> dans le message de news:
>>> 03B9389F-C719-44D0-B106-2AC78B120F56-Re5JQEeQqe9Ui4FbrNnSJA-XMD5yJDbdMRG2NFembrH+g at public.gmane.orgorg
>>> Hi,
>>> 
>>> We have no specific startUp: methods in Moose. In any case, the issue 
>>> with
>>> opening the image does not seem to be related to startUp:.
>>> 
>>> Is it really true that the Cog VM is limited to 512MB of memory?
>>> 
>>> Cheers,
>>> Doru
>>> 
>>> 
>>> On 21 Apr 2011, at 14:27, Luc Fabresse wrote:
>>> 
>>>> Hi Doru,
>>>> 
>>>> 2011/4/21 Tudor Girba
>>>> <tudor.girba at gmail.com>
>>>> Hi,
>>>> 
>>>> 
>>>> 
>>>> On Apr 21, 2011, at 14:06, Mariano Martinez Peck
>>>> <marianopeck at gmail.com> wrote:
>>>> 
>>>>> 
>>>>> 
>>>>> On Thu, Apr 21, 2011 at 1:58 PM, Tudor Girba
>>>>> <tudor.girba at gmail.com> wrote:
>>>>>> Hi again,
>>>>>> 
>>>>>> I did not say what the problem was :). The problem was that when
>>>>>> opening the image on Windows, he got a Space is low message and the
>>>>>> image was not usable (see attachment).
>>>>> 
>>>>> That's weird. Does moose have something on the startup list? 
>>>>> something
>>>>> that can be bothering there?
>>>> 
>>>> Not that I know of. Is there a way to check this?
>>>> 
>>>> Classes should be registered using Smalltlak addToStartUpList: aClass
>>>> Then aClass class>>#startUp: is executed at startup.
>>>> So implementors of #startUp: on Moose classes should give you the 
>>>> answer.
>>>> 
>>>> #Luc
>>>> 
>>>> 
>>>> Actually, using exactly the same process some days ago he produced an
>>>> image of 190MB. This one works just fine on Windows. The only 
>>>> difference
>>>> between the two is the size of the loaded data.
>>>> 
>>>> It would be really bad news if the Windows vm would be so severely
>>>> limited
>>>> in terms of memory.
>>>> 
>>>> Cheers,
>>>> Doru
>>>> 
>>>> 
>>>>> 
>>>>> On Mac it worked just fine.
>>>>>> 
>>>>>> Cheers,
>>>>>> Doru
>>>>>> 
>>>>>> 
>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On 21 Apr 2011, at 12:52, Tudor Girba wrote:
>>>>>> 
>>>>>>> Hi,
>>>>>>> 
>>>>>>> I received a question from someone running a 200MB image on Windows
>>>>>>> using Cog 2361.
>>>>>>> 
>>>>>>> If I open the image on Mac, it works just fine. Unfortunately, I do
>>>>>>> not have a Windows machine around, and I cannot test but I believe 
>>>>>>> it
>>>>>>> should be solvable by increasing the allocated memory.
>>>>>>> 
>>>>>>> On Mac, I would run it with: ./Croquet -memory 1500m
>>>>>>> 
>>>>>>> Can anyone help me with the right incantation for Windows?
>>>>>>> 
>>>>>>> Cheers,
>>>>>>> Doru
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> www.tudorgirba.com
>>>>>>> 
>>>>>>> "What we can governs what we wish."
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> <Space is low.png>
>>>>>> 
>>>>>> --
>>>>>> www.tudorgirba.com
>>>>>> 
>>>>>> "Yesterday is a fact.
>>>>>> Tomorrow is a possibility.
>>>>>> Today is a challenge."
>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Mariano
>>>>> http://marianopeck.wordpress.com
>>>>> 
>>>> 
>>> 
>>> --
>>> www.tudorgirba.com
>>> 
>>> "Beauty is where we see it."
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
>> --
>> www.tudorgirba.com
>> 
>> "If you interrupt the barber while he is cutting your hair,
>> you will end up with a messy haircut."
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> -- 
>> Mariano
>> http://marianopeck.wordpress.com
>> 
> 
> --
> www.tudorgirba.com
> 
> "Live like you mean it."
> 
> 
> 
> 
> 
> 

--
www.tudorgirba.com

"What is more important: To be happy, or to make happy?"




More information about the Pharo-project mailing list