[Vm-dev] VM Maker: Cog-eem.158.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Jun 16 20:37:16 UTC 2014
Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.158.mcz
==================== Summary ====================
Name: Cog-eem.158
Author: eem
Time: 16 June 2014, 1:37:01.616 pm
UUID: 7af369da-3100-4057-b666-249b2e7efe8f
Ancestors: Cog-eem.157
Beef up the arguments to the ShootoutTests' standard
suite and update the numbers for my current machine.
=============== Diff against Cog-eem.157 ===============
Item was added:
+ ----- Method: DummyStream>>cr (in category '*Cog-Benchmarks-Shootout-platform') -----
+ cr!
Item was changed:
+ ----- Method: DummyStream>>nl (in category '*Cog-Benchmarks-Shootout-platform') -----
- ----- Method: DummyStream>>nl (in category '*Cog-Benchmarks-Shootout-Shootout-Shootout-platform') -----
nl
"do nothing"!
Item was changed:
+ ----- Method: DummyStream>>print:digits: (in category '*Cog-Benchmarks-Shootout-platform') -----
- ----- Method: DummyStream>>print:digits: (in category '*Cog-Benchmarks-Shootout-Shootout-Shootout-platform') -----
print: number digits: decimalPlaces
"do nothing"!
Item was changed:
+ ----- Method: DummyStream>>print:paddedTo: (in category '*Cog-Benchmarks-Shootout-platform') -----
- ----- Method: DummyStream>>print:paddedTo: (in category '*Cog-Benchmarks-Shootout-Shootout-Shootout-platform') -----
print: number paddedTo: width
"do nothing"!
Item was added:
+ ----- Method: DummyStream>>space (in category '*Cog-Benchmarks-Shootout-platform') -----
+ space!
Item was added:
+ ----- Method: DummyStream>>tab (in category '*Cog-Benchmarks-Shootout-platform') -----
+ tab!
Item was added:
+ ----- Method: ShootoutTests class>>referenceArgs (in category 'benchmark scripts') -----
+ referenceArgs
+ ^self referenceTimesAndArgsForClosureInterpreter collect: [:ea| ea last]!
Item was added:
+ ----- Method: ShootoutTests class>>referenceTimesAndArgsForClosureInterpreter (in category 'benchmark scripts') -----
+ referenceTimesAndArgsForClosureInterpreter
+ "Interpreter + Closures VM (Mac Cocoa 5.7b3 27-Aug-10 >7BCAB029-A835-4D12-946D-4AB7083D2955< VMMaker versionString 4.4.9)
+ on Eliot's 2012 vintage 2.2GHz Intel (quad) Core i7 MacBook Pro"
+ ^Dictionary new
+ at: #nbody put: #(40903 2000000);
+ at: #binarytrees put: #(30573 17);
+ at: #chameneosredux put: #(30722 2000000);
+ at: #threadring put: #(9148 30000000);
+ yourself!
Item was changed:
----- Method: ShootoutTests class>>referenceTimesForClosureInterpreter (in category 'benchmark scripts') -----
referenceTimesForClosureInterpreter
+ ^self referenceTimesAndArgsForClosureInterpreter collect: [:ea| ea first]!
- "ClosureVM (QF 1.2.23 + Closure Bytecodes) on Eliot's 2010 vintage 2.66GHz Intel Core i7 MacBook Pro"
- ^Dictionary new
- at: #nbody put: 4543;
- at: #binarytrees put: 6944;
- at: #chameneosredux put: 5799;
- at: #threadring put: 5623;
- yourself
-
- "ClosureVM (QF 1.2.23 + Closure Bytecodes) on Eliot's 2006 vintage 2.16GHz Intel Core Duo MacBook Pro"
- "^Dictionary new
- at: #nbody put: 7660;
- at: #binarytrees put: 14417;
- at: #chameneosredux put: 8478;
- at: #threadring put: 8718;
- yourself"!
Item was removed:
- ----- Method: ShootoutTests class>>referenceTimesForSqueakVM (in category 'benchmark scripts') -----
- referenceTimesForSqueakVM
- "Squeak VM (4.2.2beta1 + Closure Bytecodes) on Eliot's 2010 vintage 2.66GHz Intel Core i7 MacBook Pro"
- ^Dictionary new
- at: #nbody put: 4917;
- at: #binarytrees put: 8593;
- at: #chameneosredux put: 5405;
- at: #threadring put: 3789;
- yourself!
Item was changed:
----- Method: ShootoutTests class>>runAllToDummyStreamVs: (in category 'benchmark scripts') -----
runAllToDummyStreamVs: referenceTimes
"Transcript clear.
self runAllToDummyStreamVs: self referenceTimesForClosureInterpreter"
"Transcript clear.
self runAllToDummyStreamVs: self referenceTimesForSqueakVM"
+ | times ratios geometricMean |
- | stream times ratios geometricMean |
- stream := DummyStream new.
times := Array new writeStream.
ratios := Array new writeStream.
+ (self standardSuiteTo: DummyStream basicNew) do:
- { [self nbody: 200000 "20000000" to: stream].
- [self binarytrees: 15 to: stream].
- [self chameneosredux: 260000 to: stream].
- [self threadring: 10000000 to: stream] } do:
[:block | | benchmark reference t |
benchmark := (self selectorForSimpleBlock: block) copyUpTo: $:.
reference := referenceTimes at: benchmark asSymbol.
Smalltalk garbageCollect.
times nextPut: (t := Time millisecondsToRun: block).
ratios nextPut: t asFloat / reference.
self report: block decompile printString time: t reference: reference on: Transcript].
geometricMean := (ratios contents inject: 1 into: [:m :n| m * n]) raisedTo: 1 / ratios position.
Transcript
nextPutAll: 'geometric mean '; print: (geometricMean roundTo: 0.001);
nextPutAll: ' average speedup '; print: ((geometricMean - 1 * 100) roundTo: 0.01); nextPut: $%; cr; cr; flush.
^times contents!
Item was changed:
----- Method: ShootoutTests class>>runAllToInternalStreamVs: (in category 'benchmark scripts') -----
runAllToInternalStreamVs: referenceTimes
"Transcript clear.
self runAllToInternalStreamVs: self referenceTimesForClosureInterpreter"
"Transcript clear.
self runAllToInternalStreamVs: self referenceTimesForSqueakVM"
+ | times ratios geometricMean |
- | stream times ratios geometricMean |
- stream := (ByteString new: 10000) writeStream.
times := Array new writeStream.
ratios := Array new writeStream.
+ (self standardSuiteTo: (ByteString new: 10000) writeStream) do:
- { [self nbody: 200000 "20000000" to: stream].
- [self binarytrees: 15 to: stream].
- [self chameneosredux: 260000 to: stream].
- [self threadring: 10000000 to: stream] } do:
[:block | | benchmark reference t |
benchmark := (self selectorForSimpleBlock: block) copyUpTo: $:.
reference := referenceTimes at: benchmark asSymbol.
Smalltalk garbageCollect.
times nextPut: (t := Time millisecondsToRun: block).
ratios nextPut: t asFloat / reference.
self report: block decompile printString time: t reference: reference on: Transcript].
geometricMean := (ratios contents inject: 1 into: [:m :n| m * n]) raisedTo: 1 / ratios position.
Transcript
nextPutAll: 'geometric mean '; print: (geometricMean roundTo: 0.001);
nextPutAll: ' average speedup '; print: ((geometricMean - 1 * 100) roundTo: 0.01); nextPut: $%; cr; cr; flush.
^times contents!
Item was changed:
----- Method: ShootoutTests class>>runAllToTranscriptVs: (in category 'benchmark scripts') -----
runAllToTranscriptVs: referenceTimes
"Transcript clear.
self runAllToTranscriptVs: self referenceTimesForClosureInterpreter"
"Transcript clear.
self runAllToTranscriptVs: self referenceTimesForSqueakVM"
| times ratios geometricMean |
times := Array new writeStream.
ratios := Array new writeStream.
+ (self standardSuiteTo: Transcript) do:
- { [self nbody: 200000 "20000000" to: Transcript].
- [self binarytrees: 15 to: Transcript].
- [self chameneosredux: 260000 to: Transcript].
- [self threadring: 10000000 to: Transcript] } do:
[:block | | benchmark reference t |
benchmark := (self selectorForSimpleBlock: block) copyUpTo: $:.
reference := referenceTimes at: benchmark asSymbol.
Smalltalk garbageCollect.
times nextPut: (t := Time millisecondsToRun: block).
ratios nextPut: t asFloat / reference.
self report: block decompile printString time: t reference: reference on: Transcript].
geometricMean := (ratios contents inject: 1 into: [:m :n| m * n]) raisedTo: 1 / ratios position.
Transcript
nextPutAll: 'geometric mean '; print: (geometricMean roundTo: 0.001);
nextPutAll: ' average speedup '; print: ((geometricMean - 1 * 100) roundTo: 0.01); nextPut: $%; cr; cr; flush.
^times contents!
Item was added:
+ ----- Method: ShootoutTests class>>standardSuiteTo: (in category 'benchmark scripts') -----
+ standardSuiteTo: aStream
+ "revised up from
+ { [self nbody: 200000 to: stream].
+ [self binarytrees: 15 to: stream].
+ [self chameneosredux: 260000 to: stream].
+ [self threadring: 10000000 to: stream] }
+ on 6/15/2014"
+ | reference nbodyCount binaryTreeDepth chameneosCount threadringCount |
+ reference := self referenceTimesAndArgsForClosureInterpreter.
+ nbodyCount := (reference at: #nbody) last.
+ binaryTreeDepth := (reference at: #binarytrees) last.
+ chameneosCount := (reference at: #chameneosredux) last.
+ threadringCount := (reference at: #threadring) last.
+ ^{ [self nbody: nbodyCount to: aStream].
+ [self binarytrees: binaryTreeDepth to: aStream].
+ [self chameneosredux: chameneosCount to: aStream].
+ [self threadring: threadringCount to: aStream] }!
More information about the Vm-dev
mailing list