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@hartl.name> wrote:
Am 23.10.2015 um 13:29 schrieb Werner Kassens <wkassens@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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.