benchmarks/CollectionBenchmarks.st
author Claus Gittinger <cg@exept.de>
Wed, 29 Jun 2016 15:55:29 +0200
changeset 1447 2351db93aa5b
parent 552 f2372d2f4a2d
child 1500 d406a10b2965
child 1538 54d5b5a43b3c
permissions -rw-r--r--
package changes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
     1
"{ Package: 'stx:goodies/regression/benchmarks' }"
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#CollectionBenchmarks
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:''
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'benchmarks-Collections'
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!CollectionBenchmarks class methodsFor:'sorted collections'!
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
collectionTimings
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
    |N randomNumbers|
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    N := 100000.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
    randomNumbers := (1 to:N) collect:[:i | Random nextInteger].
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    ObjectMemory garbageCollect.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
    #(SortedCollection AATree BinaryTree) do:[:className |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    21
	|class doBench coll t seq|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    23
	class := Smalltalk classNamed:className.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    25
	doBench := [:class |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    26
		|coll t|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    28
		t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    29
		    coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    30
		    randomNumbers do:[:each | coll add:each]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    31
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    32
		Transcript show:'Time to insert random '; show:N; show:' individually into ',class name,': '; show:t; showCR:'ms'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    33
		coll
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    34
	    ].
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    36
	ObjectMemory garbageCollect.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    37
	doBench value:class.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    38
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    40
	doBench := [:class |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    41
		|coll t|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    43
		t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    44
		    coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    45
		    coll addAll:randomNumbers
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    46
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    47
		Transcript show:'Time to insert random '; show:N; show:' en-bloque into ',class name,': '; show:t; showCR:'ms'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    48
		coll
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    49
	    ].
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    51
	ObjectMemory garbageCollect.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    52
	doBench value:class.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    53
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    55
	doBench := [:class |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    56
		|coll t|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    58
		t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    59
		    coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    60
		    (1 to:N) do:[:each | coll add:each].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    61
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    62
		Transcript show:'Time to insert in order '; show:N; show:' individually into ',class name,': '; show:t; showCR:'ms'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    63
		coll
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    64
	    ].
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    66
	ObjectMemory garbageCollect.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    67
	doBench value:class.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    68
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    70
	doBench := [:class |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    71
		|coll t|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    73
		t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    74
		    coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    75
		    coll addAll:(1 to:N).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    76
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    77
		Transcript show:'Time to insert in order '; show:N; show:' en-bloque into ',class name,': '; show:t; showCR:'ms'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    78
		coll
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    79
	    ].
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    81
	ObjectMemory garbageCollect.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    82
	doBench value:class.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    83
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    85
	doBench := [:class |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    86
		|coll t|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    88
		t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    89
		    coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    90
		    (N downTo:1) do:[:each | coll add:each].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    91
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    92
		Transcript show:'Time to insert in reverse order '; show:N; show:' individually into ',class name,': '; show:t; showCR:'ms'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    93
		coll
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    94
	    ].
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    96
	ObjectMemory garbageCollect.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    97
	doBench value:class.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    98
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   100
	doBench := [:class |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   101
		|coll t|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   103
		t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   104
		    coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   105
		    coll addAll:(N downTo:1).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   106
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   107
		Transcript show:'Time to insert in reverse order '; show:N; show:' en-bloque into ',class name,': '; show:t; showCR:'ms'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   108
		coll
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   109
	    ].
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   111
	ObjectMemory garbageCollect.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   112
	doBench value:class.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   113
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   118
	coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   119
	coll addAll:randomNumbers.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   121
	t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   122
	    coll removeAll:randomNumbers.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   123
	].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   124
	Transcript show:'Time to remove in random order '; show:N; show:' from ',class name,': '; show:t; showCR:'ms'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   125
	self assert:(coll isEmpty).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   126
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   129
	coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   130
	coll addAll:randomNumbers.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   131
	seq := randomNumbers copy sort.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   133
	t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   134
	    coll removeAll:seq.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   135
	].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   136
	Transcript show:'Time to remove in order '; show:N; show:' from ',class name,': '; show:t; showCR:'ms'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   137
	self assert:(coll isEmpty).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   138
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   140
	coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   141
	coll addAll:randomNumbers.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   142
	seq := randomNumbers copy sort reverse.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   144
	t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   145
	    coll removeAll:seq.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   146
	].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   147
	Transcript show:'Time to remove in reverse order '; show:N; show:' from ',class name,': '; show:t; showCR:'ms'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   148
	self assert:(coll isEmpty).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   149
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   151
	Transcript cr.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
    ].
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
!
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
documentation
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
"
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    Time to insert random 100000 individually into SortedCollection: 6037ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    Time to insert random 100000 en-bloque into SortedCollection: 172ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
    Time to insert in order 100000 individually into SortedCollection: 31ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
    Time to insert in order 100000 en-bloque into SortedCollection: 125ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
    Time to insert in reverse order 100000 individually into SortedCollection: 93ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    Time to insert in reverse order 100000 en-bloque into SortedCollection: 125ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
    Time to remove in random order 100000 from SortedCollection: 6380ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
    Time to remove in order 100000 from SortedCollection: 109ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
    Time to remove in reverse order 100000 from SortedCollection: 125ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    Time to insert random 100000 individually into AATree: 281ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
    Time to insert random 100000 en-bloque into AATree: 265ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
    Time to insert in order 100000 individually into AATree: 281ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
    Time to insert in order 100000 en-bloque into AATree: 328ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
    Time to insert in reverse order 100000 individually into AATree: 203ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
    Time to insert in reverse order 100000 en-bloque into AATree: 218ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
    Time to remove in random order 100000 from AATree: 452ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
    Time to remove in order 100000 from AATree: 312ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
    Time to remove in reverse order 100000 from AATree: 499ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
    Time to insert random 100000 individually into BinaryTree: 156ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
    Time to insert random 100000 en-bloque into BinaryTree: 156ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
    Time to insert in order 100000 individually into BinaryTree: 195921ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
    Time to insert in order 100000 en-bloque into BinaryTree: 205266ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
    Time to insert in reverse order 100000 individually into BinaryTree: 202271ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
    Time to insert in reverse order 100000 en-bloque into BinaryTree: 197684ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
    Time to remove in random order 100000 from BinaryTree: 234ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
    Time to remove in order 100000 from BinaryTree: 78ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
    Time to remove in reverse order 100000 from BinaryTree: 78ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
"
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
!
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
test_Btree
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
    |coll sc randomNumbers|
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    randomNumbers := (1 to:1000) collect:[:i |Random nextInteger].
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    sc := SortedCollection new.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
    sc addAll:randomNumbers.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    coll := BinaryTree new.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
    coll addAll:randomNumbers.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
    randomNumbers do:[:each |
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
"/        Transcript showCR:'-----------'.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
"/        Transcript showCR:(coll instVarNamed:'treeRoot').
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
"/        Transcript showCR:each.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   204
	coll remove:each.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   205
	sc remove:each.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   206
	self assert:(sc asOrderedCollection = coll asOrderedCollection).
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
    ].
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
! !
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
!CollectionBenchmarks class methodsFor:'documentation'!
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
version
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
    ^ '$Header$'
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
! !