Hi,

when I use MassageTally>>spyOn: on the creation of a Dictionary,  
results have not the same details according to the size of Dictionary.

For example:
===
|n|
MessageTally spyOn:[
        n := Dictionary new.
        1 to: 400000 do:[:each | n at: each put:each].
]
===

returns this results:

====
  - 1745 tallies, 1751 msec.

**Tree**
--------------------------------
Process: (40s)  1964: nil
--------------------------------
45.8% {802ms} Dictionary(Set)>>atNewIndex:put:
   |43.6% {763ms} Dictionary(Set)>>fullCheck
   |  |39.4% {690ms} Dictionary(Set)>>grow
   |  |  |27.2% {476ms} Dictionary>>noCheckAdd:
   |  |  |  |25.2% {441ms} Dictionary(Set)>>findElementOrNil:
   |  |  |  |  |23.6% {413ms} Dictionary>>scanFor:
   |  |  |  |  |1.6% {28ms} primitives
   |  |  |  |2.0% {35ms} primitives
   |  |  |9.2% {161ms} primitives
   |  |  |3.0% {53ms} Array(SequenceableCollection)>>do:
   |  |2.4% {42ms} primitives
   |  |1.8% {32ms} SmallInteger(Magnitude)>>max:
   |2.2% {39ms} primitives
22.4% {392ms} Association class>>key:value:
   |18.9% {331ms} Association class(LookupKey class)>>key:
   |  |16.3% {285ms} Association(LookupKey)>>key:
   |  |2.6% {46ms} primitives
   |1.9% {33ms} Association>>value:
   |1.6% {28ms} primitives
4.4% {77ms} Dictionary(Set)>>findElementOrNil:
   |2.3% {40ms} primitives
   |2.1% {37ms} Dictionary>>scanFor:
1.9% {33ms} primitives
====

But, if I do:
===
|n|
MessageTally spyOn:[
        n := Dictionary new.
        1 to: 4000000 do:[:each | n at: each put:each].
]
===

results are:
====
  - 179772 tallies, 180312 msec.

**Tree**
--------------------------------
Process: (40s)  1964: nil
--------------------------------
3.1% {5590ms} Dictionary(Set)>>atNewIndex:put:
   |2.8% {5049ms} Dictionary(Set)>>fullCheck
   |  2.3% {4147ms} Dictionary(Set)>>grow
   |    1.3% {2344ms} Dictionary>>noCheckAdd:
1.0% {1803ms} Association class>>key:value:
====

Where are the rest of the process ?
Does anybody understand this behavior ? can you explain ?


Cheers,
Jannik


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to