/mobile Handheld Friendly website
Ubuntu : Intel® Q6600® one core |
Each table row shows performance measurements for this Smalltalk VisualWorks program with a particular command-line input value N.
| N | CPU secs | Elapsed secs | Memory KB | Code B | ≈ CPU Load |
|---|---|---|---|---|---|
| 12 | 0.17 | 0.75 | 15,484 | 722 | 9% 12% 19% 92% |
| 16 | 2.31 | 2.31 | 76,868 | 722 | 5% 6% 12% 100% |
| 20 | 65.60 | 65.67 | 316,312 | 722 | 0% 0% 0% 100% |
Read the ↓ make, command line, and program output logs to see how this program was run.
Read binary-trees benchmark to see what this program should do.
VisualWorks® Personal Use Edition Release 7.9 of May 11, 2012
"* The Computer Language Benchmarks Game http://benchmarksgame.alioth.debian.org/ contributed by Isaac Gouy modified by Eliot Miranda *"! Object subclass: #TreeNode instanceVariableNames: 'left right item' classVariableNames: '' poolDictionaries: '' category: 'Shootout'! !Tests class methodsFor: 'benchmarking'! binarytrees: n to: output | minDepth maxDepth stretchDepth check longLivedTree iterations | minDepth := 4. maxDepth := minDepth + 2 max: n. stretchDepth := maxDepth + 1. check := (TreeNode bottomUpTree: 0 depth: stretchDepth) itemCheck. output nextPutAll: 'stretch tree of depth '; print: stretchDepth; tab; nextPutAll: ' check: '; print: check; nl. longLivedTree := TreeNode bottomUpTree: 0 depth: maxDepth. minDepth to: maxDepth by: 2 do: [:depth| iterations := 1 bitShift: maxDepth - depth + minDepth. check := 0. 1 to: iterations do: [:i| check := check + (TreeNode bottomUpTree: i depth: depth) itemCheck. check := check + (TreeNode bottomUpTree: -1*i depth: depth) itemCheck ]. output print: (2*iterations); tab; nextPutAll: ' trees of depth '; print: depth; tab; nextPutAll: ' check: '; print: check; nl ]. output nextPutAll: 'long lived tree of depth '; print: maxDepth; tab; nextPutAll: ' check: '; print: longLivedTree itemCheck; nl! ! !Tests class methodsFor: 'benchmark scripts'! binarytrees self binarytrees: self arg to: self stdout. ^''! ! !TreeNode methodsFor: 'initialize-release'! left: leftChild right: rightChild item: anItem left := leftChild. right := rightChild. item := anItem! ! !TreeNode methodsFor: 'accessing'! itemCheck ^left isNil ifTrue: [item] ifFalse: [item + (left itemCheck - right itemCheck)]! ! !TreeNode class methodsFor: 'instance creation'! bottomUpTree: anItem depth: anInteger ^(anInteger > 0) ifTrue: [ self left: (self bottomUpTree: 2*anItem - 1 depth: anInteger - 1) right: (self bottomUpTree: 2*anItem depth: anInteger - 1) item: anItem ] ifFalse: [self left: nil right: nil item: anItem]! ! !TreeNode class methodsFor: 'instance creation'! left: leftChild right: rightChild item: anItem ^(super new) left: leftChild right: rightChild item: anItem! !
Wed, 06 Feb 2013 23:34:27 GMT COMMAND LINE: /usr/local/src/vw7.9pul/bin/linux86/vwlinux86 /usr/local/src/vw7.9pul/image/benchmarks.im -nogui -evaluate "Tests binarytrees" -a 20 PROGRAM OUTPUT: stretch tree of depth 21 check: -1 2097152 trees of depth 4 check: -2097152 524288 trees of depth 6 check: -524288 131072 trees of depth 8 check: -131072 32768 trees of depth 10 check: -32768 8192 trees of depth 12 check: -8192 2048 trees of depth 14 check: -2048 512 trees of depth 16 check: -512 128 trees of depth 18 check: -128 32 trees of depth 20 check: -32 long lived tree of depth 20 check: -1