Re: [Pharo-project] Increase memory
Ciao Roberto, which is the current size of the image? (the .image file). If you evaluate the following a couple of times (print it cmd-p), you will cleanup most of the unreferenced objects in the image, it returns a number so you can compare it to successive evaluations. Smalltalk garbageCollect. You can also follow the pointers to objects, to detect objects which you suspect are just hanging around, and fail to be garbage collected, to clear those references. Open an inspector an any object,and the menu has that option. ( {Object. 1. #hello} inspect) . You can also, start with a fresh image. pd: if you search the mailing list, i remember Tudor writing about large images and vm's. On Thu, Nov 8, 2012 at 2:16 PM, roberto.minelli@usi.ch < roberto.minelli@usi.ch> wrote:
Hi,
I was executing a piece of code that collects the revisions of a Git repo in Pharo but it seems Pharo requires more memory..
How do I increase the available memory?
Here is the log:
SmalltalkImage>>signalLowSpace OutOfMemory>>defaultAction UndefinedObject>>handleSignal: OutOfMemory(Exception)>>pass PasteUpMorph>>becomeActiveDuring: in Block: [:ex | ... BlockClosure>>cull: MethodContext(ContextPart)>>handleSignal: in Block: [self exceptionHandlerBlock cull: exception] BlockClosure>>ensure: MethodContext(ContextPart)>>handleSignal: MethodContext(ContextPart)>>handleSignal: OutOfMemory(Exception)>>signal OutOfMemory class(Exception class)>>signal ByteArray class(Behavior)>>basicNew: ByteArray class(Behavior)>>new: ByteArray(SequenceableCollection)>>copyFrom:to: ReadStream(PositionableStream)>>contents GitPackedNonDelta(GitPackedObject)>>compressedData GitPackedNonDelta(GitPackedObject)>>computeCRC GitPackedNonDelta(GitPackedObject)>>loadFrom: GitPackedObject class>>fromPack:at:in: GitPackFile>>objectAtOffset: GitPackFile>>objectNamed: GitRepository>>packedObjectNamed:ifAbsent: in Block: [:pack | (pack objectNamed: aHexHash)... GitRepository>>packsDo: in Block: [:pack | aBlock value: pack] OrderedCollection>>do: GitRepository>>packsDo: GitRepository>>packedObjectNamed:ifAbsent: GitRepository>>objectNamed:ifAbsent: in Block: [self packedObjectNamed: aHash ifAbsent: aBlock] GitRepository>>looseObjectNamed:ifAbsent: in Block: [^ aBlock value] False>>ifTrue:ifFalse:
Thanks, Roberto
Hi Fernando, On Nov 8, 2012, at 2:32 PM, Fernando Olivero <fernando.olivero@usi.ch> wrote:
Ciao Roberto, which is the current size of the image? (the .image file).
The image is indeed fresh, just installed FileSystemGit.. It's about 30 MB..
If you evaluate the following a couple of times (print it cmd-p), you will cleanup most of the unreferenced objects in the image, it returns a number so you can compare it to successive evaluations.
Smalltalk garbageCollect.
You can also follow the pointers to objects, to detect objects which you suspect are just hanging around, and fail to be garbage collected, to clear those references. Open an inspector an any object,and the menu has that option. ( {Object. 1. #hello} inspect) .
You can also, start with a fresh image.
pd: if you search the mailing list, i remember Tudor writing about large images and vm's.
Then, I'll look around.. Thanks..
On Thu, Nov 8, 2012 at 2:16 PM, roberto.minelli@usi.ch <roberto.minelli@usi.ch> wrote: Hi,
I was executing a piece of code that collects the revisions of a Git repo in Pharo but it seems Pharo requires more memory..
How do I increase the available memory?
Here is the log:
SmalltalkImage>>signalLowSpace OutOfMemory>>defaultAction UndefinedObject>>handleSignal: OutOfMemory(Exception)>>pass PasteUpMorph>>becomeActiveDuring: in Block: [:ex | ... BlockClosure>>cull: MethodContext(ContextPart)>>handleSignal: in Block: [self exceptionHandlerBlock cull: exception] BlockClosure>>ensure: MethodContext(ContextPart)>>handleSignal: MethodContext(ContextPart)>>handleSignal: OutOfMemory(Exception)>>signal OutOfMemory class(Exception class)>>signal ByteArray class(Behavior)>>basicNew: ByteArray class(Behavior)>>new: ByteArray(SequenceableCollection)>>copyFrom:to: ReadStream(PositionableStream)>>contents GitPackedNonDelta(GitPackedObject)>>compressedData GitPackedNonDelta(GitPackedObject)>>computeCRC GitPackedNonDelta(GitPackedObject)>>loadFrom: GitPackedObject class>>fromPack:at:in: GitPackFile>>objectAtOffset: GitPackFile>>objectNamed: GitRepository>>packedObjectNamed:ifAbsent: in Block: [:pack | (pack objectNamed: aHexHash)... GitRepository>>packsDo: in Block: [:pack | aBlock value: pack] OrderedCollection>>do: GitRepository>>packsDo: GitRepository>>packedObjectNamed:ifAbsent: GitRepository>>objectNamed:ifAbsent: in Block: [self packedObjectNamed: aHash ifAbsent: aBlock] GitRepository>>looseObjectNamed:ifAbsent: in Block: [^ aBlock value] False>>ifTrue:ifFalse:
Thanks, Roberto
participants (2)
-
Fernando Olivero -
roberto.minelli@usi.ch