[Pharo-project] Howto measure memory footprints of functions/objects/libraries in Pharo?
leves at elte.hu
Tue Nov 9 05:29:04 CET 2010
On Tue, 9 Nov 2010, Guido Stepken wrote:
> E.g.: Three different solutions for a Euler problem:
> (1 to: 999) inject: 0 into: [:sum :i | (i \\ 3 = 0) | (i \\ 5 = 0)
> ifTrue: [sum + i]
> ifFalse: [sum]]
> (1 to: 999) detectSum: [:i | (i \\ 3 = 0) | (i \\ 5 = 0) ifTrue: [i] ifFalse:
> (1 to: 999) detectSum: [:i | i * (#(0 0 1 0 1 1 0 0 1 1 0 1 0 0 1) atWrap:
> How do i measure the exact memory footprint of each solution?
I think you could measure it with the simulator. But these snippets are so
simple that they only use at most few kilobytes.
> Pharo claims having reduced memory footprint at many places. Can that be
> proofed, e.g. with one comparable demo app, once run in old squeak, once in
> Pharo 1.1/1.2?
You misunderstood Pharo's claims. It doesn't mean that running code in
Pharo will use less memory than in Squeak. It means that the image is
smaller, because it contains less stuff. So, there's nothing to be
proven. Btw it's funny that you refer to Squeak as "old".
> And no, MessageTally spyOn: does not do right!
MessageTally is for measuring runtime, not space. But I guess the GC
statistics are reliable, so the allocated memory and time spent in GC is
correct even on CogVM. But your code runs too fast for MessageTally.
> Tnx in advance, Guido Stepken
More information about the Pharo-project