[Pharo-users] memory question

Alexandre Bergel alexandre.bergel at me.com
Fri Oct 23 09:13:00 EDT 2015


Well, this is not enough. This #sizeInMemory only tells you the size of the object, which is simply the number of variables * 4 + size of the header. 
For collection, such as OrderedCollection and Dictionary, it is worth asking #size and #capacity:
	- #size tells you the amount of objects kept in the collection
	- #capacity tells you the maximum size the collection can hold without triggering a grow operation.

For example:
Dictionary new sizeInMemory => 16

d := Dictionary new.
d at: #foo put: 1.
d sizeInMemory 
=> 16

d := Dictionary new.
d at: #foo put: 1.
d capacity 
=> 5

d := Dictionary new.
1 to: 1000 do: [ :i | d at: i put: i ].
d capacity 
=> 2213

d := Dictionary new.
1 to: 1000 do: [ :i | d at: i put: i ].
d size 
=> 1000

Alexandre




> On Oct 23, 2015, at 9:06 AM, Norbert Hartl <norbert at hartl.name> wrote:
> 
> 
>> Am 23.10.2015 um 13:29 schrieb Werner Kassens <wkassens at libello.com>:
>> 
>> sorry, wrong thread, that was unintentional. werner
>> 
>> On 10/23/2015 01:24 PM, Werner Kassens wrote:
>>> Hi,
>>> i'd like to test how much memory a dictionary uses. i guess i could
>>> simply delete that dictionary and see how much memory the garbage
>>> collector releases, but i wonder how i could measure that without
>>> destroying that dictionary?
>>> werner
> 
> Try
> 
> Dictionary new sizeInMemory 
> 
> Norbert
> 
> 
> 

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.







More information about the Pharo-users mailing list