Hi Igor,

Please refrain from speaking down on people.

If you have a concrete solution for how to do things, please feel free to share 
it with us. We would be happy to learn from it.

Cheers,
Tudor


> On Nov 10, 2016, at 4:11 AM, Igor Stasenko <[email protected]> wrote:
> 
> Nice progress, indeed. 
> Now i hope at the end of the day, the guys who doing data mining/statistical 
> analysis will finally shut up and happily be able 
> to work with more bloat without need of learning a ways to properly manage 
> memory & resources, and implement them finally. 
> But i guess, that won't be long silence, before they again start screaming in 
> despair: please help, my bloat doesn't fits into memory... :)
> 
> On 9 November 2016 at 12:06, Sven Van Caekenberghe <[email protected]> wrote:
> OK, I am quite excited about the future possibilities of 64-bit Pharo. So I 
> played a bit more with the current test version [1], trying to push the 
> limits. In the past, it was only possible to safely allocate about 1.5GB of 
> memory even though a 32-bit process' limit is theoretically 4GB (the OS and 
> the VM need space too).
> 
> Allocating a couple of 1GB ByteArrays is one way to push memory use, but it 
> feels a bit silly. So I loaded a bunch of projects (including Seaside) to 
> push the class/method counts (7K classes, 100K methods) and wrote a script 
> [2] that basically copies part of the class/method metadata including 2 
> copies of each's methods source code as well as its AST (bypassing the cache 
> of course). This feels more like a real object graph.
> 
> I had to create no less than 7 (SEVEN) copies (each kept open in an 
> inspector) to break through the mythical 4GB limit (real allocated & used 
> memory).
> 
> <Screen Shot 2016-11-09 at 11.25.28.png>
> 
> I also have the impression that the image shrinking problem is gone (closing 
> everything frees memory, saving the image has it return to its original size, 
> 100MB in this case).
> 
> Great work, thank you. Bright future again.
> 
> Sven
> 
> PS: Yes, GC is slower; No, I did not yet try to save such a large image.
> 
> [1]
> 
> VM here: http://bintray.com/estebanlm/pharo-vm/build#files/
> Image here: http://files.pharo.org/get-files/60/pharo-64.zip
> 
> [2]
> 
> | meta |
> ASTCache reset.
> meta := Dictionary new.
> Smalltalk allClassesAndTraits do: [ :each | | classMeta methods |
>   (classMeta := Dictionary new)
>     at: #name put: each name asSymbol;
>     at: #comment put: each comment;
>     at: #definition put: each definition;
>     at: #object put: each.
>   methods := Dictionary new.
>   classMeta at: #methods put: methods.
>   each methodsDo: [ :method | | methodMeta |
>     (methodMeta := Dictionary new)
>       at: #name put: method selector;
>       at: #source put: method sourceCode;
>       at: #ast put: method ast;
>       at: #args put: method argumentNames asArray;
>       at: #formatted put: method ast formattedCode;
>       at: #comment put: (method comment ifNotNil: [ :str | str withoutQuoting 
> ]);
>       at: #object put: method.
>     methods at: method selector put: methodMeta ].
>   meta at: each name asSymbol put: classMeta ].
> meta.
> 
> 
> 
> --
> Sven Van Caekenberghe
> Proudly supporting Pharo
> http://pharo.org
> http://association.pharo.org
> http://consortium.pharo.org
> 
> 
> 
> 
> 
> 
> 
> -- 
> Best regards,
> Igor Stasenko.

--
www.tudorgirba.com
www.feenk.com

"We can create beautiful models in a vacuum.
But, to get them effective we have to deal with the inconvenience of reality."


Reply via email to