benchmarks/CollectionBenchmarks.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 1538 54d5b5a43b3c
child 1564 2a4963ef3a4a
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
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
1538
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    11
!CollectionBenchmarks class methodsFor:'standalone run'!
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    12
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    13
main
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    14
    "to run from the commandline, type
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    15
	stx -I --load CollectionBenchmarks.st --run CollectionBenchmarks
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    16
    "
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    17
    self collectionTimings
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    18
! !
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    19
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
!CollectionBenchmarks class methodsFor:'sorted collections'!
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
collectionTimings
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
    |N randomNumbers|
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    N := 100000.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
    randomNumbers := (1 to:N) collect:[:i | Random nextInteger].
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
    ObjectMemory garbageCollect.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
    #(SortedCollection AATree BinaryTree) do:[:className |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    30
	|class doBench coll t seq|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    32
	class := Smalltalk classNamed:className.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    34
	doBench := [:class |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    35
		|coll t|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    37
		t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    38
		    coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    39
		    randomNumbers do:[:each | coll add:each]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    40
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    41
		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
    42
		coll
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    43
	    ].
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    45
	ObjectMemory garbageCollect.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    46
	doBench value:class.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    47
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    49
	doBench := [:class |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    50
		|coll t|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    52
		t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    53
		    coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    54
		    coll addAll:randomNumbers
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    55
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    56
		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
    57
		coll
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    58
	    ].
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    60
	ObjectMemory garbageCollect.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    61
	doBench value:class.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    62
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    64
	doBench := [:class |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    65
		|coll t|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    67
		t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    68
		    coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    69
		    (1 to:N) do:[:each | coll add:each].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    70
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    71
		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
    72
		coll
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    73
	    ].
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    75
	ObjectMemory garbageCollect.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    76
	doBench value:class.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    77
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    79
	doBench := [:class |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    80
		|coll t|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    82
		t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    83
		    coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    84
		    coll addAll:(1 to:N).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    85
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    86
		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
    87
		coll
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    88
	    ].
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    90
	ObjectMemory garbageCollect.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    91
	doBench value:class.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    92
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    94
	doBench := [:class |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    95
		|coll t|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    97
		t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    98
		    coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
    99
		    (N downTo:1) do:[:each | coll add:each].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   100
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   101
		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
   102
		coll
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   103
	    ].
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   105
	ObjectMemory garbageCollect.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   106
	doBench value:class.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   107
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   109
	doBench := [:class |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   110
		|coll t|
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   112
		t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   113
		    coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   114
		    coll addAll:(N downTo:1).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   115
		].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   116
		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
   117
		coll
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   118
	    ].
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   120
	ObjectMemory garbageCollect.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   121
	doBench value:class.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   122
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   127
	coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   128
	coll addAll:randomNumbers.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   130
	t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   131
	    coll removeAll:randomNumbers.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   132
	].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   133
	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
   134
	self assert:(coll isEmpty).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   135
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   138
	coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   139
	coll addAll:randomNumbers.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   140
	seq := randomNumbers copy sort.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   142
	t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   143
	    coll removeAll:seq.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   144
	].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   145
	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
   146
	self assert:(coll isEmpty).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   147
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   149
	coll := class new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   150
	coll addAll:randomNumbers.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   151
	seq := randomNumbers copy sort reverse.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   153
	t := Time millisecondsToRun:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   154
	    coll removeAll:seq.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   155
	].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   156
	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
   157
	self assert:(coll isEmpty).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   158
	ObjectMemory garbageCollect.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   160
	Transcript cr.
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
    ].
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
!
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
documentation
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
"
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
    Time to insert random 100000 individually into SortedCollection: 6037ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    Time to insert random 100000 en-bloque into SortedCollection: 172ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
    Time to insert in order 100000 individually into SortedCollection: 31ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
    Time to insert in order 100000 en-bloque into SortedCollection: 125ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
    Time to insert in reverse order 100000 individually into SortedCollection: 93ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
    Time to insert in reverse order 100000 en-bloque into SortedCollection: 125ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
    Time to remove in random order 100000 from SortedCollection: 6380ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
    Time to remove in order 100000 from SortedCollection: 109ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
    Time to remove in reverse order 100000 from SortedCollection: 125ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
    Time to insert random 100000 individually into AATree: 281ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
    Time to insert random 100000 en-bloque into AATree: 265ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
    Time to insert in order 100000 individually into AATree: 281ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
    Time to insert in order 100000 en-bloque into AATree: 328ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
    Time to insert in reverse order 100000 individually into AATree: 203ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
    Time to insert in reverse order 100000 en-bloque into AATree: 218ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
    Time to remove in random order 100000 from AATree: 452ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
    Time to remove in order 100000 from AATree: 312ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
    Time to remove in reverse order 100000 from AATree: 499ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
    Time to insert random 100000 individually into BinaryTree: 156ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
    Time to insert random 100000 en-bloque into BinaryTree: 156ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
    Time to insert in order 100000 individually into BinaryTree: 195921ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    Time to insert in order 100000 en-bloque into BinaryTree: 205266ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
    Time to insert in reverse order 100000 individually into BinaryTree: 202271ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
    Time to insert in reverse order 100000 en-bloque into BinaryTree: 197684ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    Time to remove in random order 100000 from BinaryTree: 234ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
    Time to remove in order 100000 from BinaryTree: 78ms
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    Time to remove in reverse order 100000 from BinaryTree: 78ms
1538
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   195
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   196
  on a 2010 powerbook (2.1Ghz 86_64)
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   197
    Time to insert random 100000 individually into SortedCollection: 1390ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   198
    Time to insert random 100000 en-bloque into SortedCollection: 50ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   199
    Time to insert in order 100000 individually into SortedCollection: 20ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   200
    Time to insert in order 100000 en-bloque into SortedCollection: 20ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   201
    Time to insert in reverse order 100000 individually into SortedCollection: 40ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   202
    Time to insert in reverse order 100000 en-bloque into SortedCollection: 40ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   203
    Time to remove in random order 100000 from SortedCollection: 1370ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   204
    Time to remove in order 100000 from SortedCollection: 40ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   205
    Time to remove in reverse order 100000 from SortedCollection: 40ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   206
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   207
    Time to insert random 100000 individually into AATree: 170ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   208
    Time to insert random 100000 en-bloque into AATree: 170ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   209
    Time to insert in order 100000 individually into AATree: 170ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   210
    Time to insert in order 100000 en-bloque into AATree: 150ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   211
    Time to insert in reverse order 100000 individually into AATree: 130ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   212
    Time to insert in reverse order 100000 en-bloque into AATree: 120ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   213
    Time to remove in random order 100000 from AATree: 310ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   214
    Time to remove in order 100000 from AATree: 200ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   215
    Time to remove in reverse order 100000 from AATree: 260ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   216
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   217
    Time to insert random 100000 individually into BinaryTree: 110ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   218
    Time to insert random 100000 en-bloque into BinaryTree: 100ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   219
    Time to insert in order 100000 individually into BinaryTree: 77260ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   220
    Time to insert in order 100000 en-bloque into BinaryTree: 78420ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   221
    Time to insert in reverse order 100000 individually into BinaryTree: 78830ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   222
    Time to insert in reverse order 100000 en-bloque into BinaryTree: 79020ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   223
    Time to remove in random order 100000 from BinaryTree: 160ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   224
    Time to remove in order 100000 from BinaryTree: 50ms
54d5b5a43b3c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   225
    Time to remove in reverse order 100000 from BinaryTree: 40ms
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
"
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
!
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
test_Btree
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
    |coll sc randomNumbers|
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
    randomNumbers := (1 to:1000) collect:[:i |Random nextInteger].
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
    sc := SortedCollection new.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
    sc addAll:randomNumbers.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
    coll := BinaryTree new.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
    coll addAll:randomNumbers.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
    randomNumbers do:[:each |
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
"/        Transcript showCR:'-----------'.
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
"/        Transcript showCR:(coll instVarNamed:'treeRoot').
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
"/        Transcript showCR:each.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   244
	coll remove:each.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   245
	sc remove:each.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 552
diff changeset
   246
	self assert:(sc asOrderedCollection = coll asOrderedCollection).
552
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
    ].
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
! !
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
!CollectionBenchmarks class methodsFor:'documentation'!
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
version
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
    ^ '$Header$'
f2372d2f4a2d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
! !