--- a/compiler/benchmarks/PPCBenchmark.st Fri Jul 31 14:07:31 2015 +0100
+++ b/compiler/benchmarks/PPCBenchmark.st Mon Aug 17 12:56:02 2015 +0100
@@ -4,7 +4,7 @@
Object subclass:#PPCBenchmark
instanceVariableNames:'sources report contextClass compile parser context input
- configuration profile'
+ configuration profile repetitions'
classVariableNames:''
poolDictionaries:''
category:'PetitCompiler-Benchmarks-Core'
@@ -63,6 +63,16 @@
"Modified: / 16-05-2015 / 19:19:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!PPCBenchmark methodsFor:'accessing'!
+
+repetitions
+ ^ repetitions
+!
+
+repetitions: anObject
+ repetitions := anObject
+! !
+
!PPCBenchmark methodsFor:'benchmark support'!
compile: value
@@ -263,15 +273,12 @@
self setupSmalltalkGrammarCompiled.
- time := [ input do: [ :source | parser parse: source withContext: context ]] timeToRun asMilliSeconds.
-
- self reportInput: input time: time name: 'Compiled Smalltalk Grammar'.
-
-"
- size := input inject: 0 into: [:r :e | r + e size ].
- Transcript crShow: 'Compiled Grammar time: ', time asString.
- Transcript crShow: 'Time per character: ', (time / size * 1000.0) asString, ' microseconds'.
-"
+ repetitions timesRepeat: [
+ time := [ input do: [ :source |
+ parser parse: source withContext: context
+ ]] timeToRun asMilliSeconds.
+ self reportInput: input time: time name: 'Compiled Smalltalk Grammar'.
+ ]
!
benchmarkSmalltalkGrammarTokenized
@@ -279,12 +286,12 @@
self setupSmalltalkGrammarTokenized.
- time := [ input do: [ :source |
- parser parse: source withContext: context ]
- ] timeToRun asMilliSeconds.
-
- self reportInput: input time: time name: 'Tokenized Smalltalk Grammar'.
-
+ repetitions timesRepeat: [
+ time := [ input do: [ :source |
+ parser parse: source withContext: context ]
+ ] timeToRun asMilliSeconds.
+ self reportInput: input time: time name: 'Tokenized Smalltalk Grammar'.
+ ]
"
size := input inject: 0 into: [:r :e | r + e size ].
Transcript crShow: 'Compiled Grammar time: ', time asString.
@@ -443,6 +450,8 @@
compile := false.
profile := false.
+
+ repetitions := 3
! !
!PPCBenchmark methodsFor:'meta'!
@@ -497,7 +506,8 @@
setupExpressionGrammarCompiled
configuration := PPCConfiguration universal.
- configuration arguments name: #PPCompiledExpressionGrammar.
+ configuration arguments parserName: #PPCompiledExpressionGrammar.
+ configuration arguments scannerName: #PPCompiledExpressionScanner.
parser := PPExpressionGrammar new compileWithConfiguration: configuration.
context := self context.
context initializeFor: parser.
@@ -507,7 +517,8 @@
setupExpressionGrammarTokenized
configuration := PPCConfiguration tokenizing.
- configuration arguments name: #PPTokenizedExpressionGrammar.
+ configuration arguments parserName: #PPTokenizedExpressionGrammar.
+ configuration arguments scannerName: #PPTokenizedExpressionScanner.
parser := PPExpressionGrammar new compileWithConfiguration: configuration.
context := self context.
context initializeFor: parser.
@@ -546,7 +557,8 @@
setupLL1ExpressionGrammarCompiled
configuration := PPCConfiguration universal.
- configuration arguments name: #PPCompiledLL1ExpressionGrammar.
+ configuration arguments parserName: #PPCompiledLL1ExpressionGrammar.
+ configuration arguments scannerName: #PPCompiledLL1ExpressionScanner.
parser := PPLL1ExpressionGrammar new compileWithConfiguration: configuration.
context := self context.
context initializeFor: parser.
@@ -556,7 +568,8 @@
setupLL1ExpressionGrammarTokenized
configuration := PPCConfiguration tokenizing.
- configuration arguments name: #PPTokenizedLL1ExpressionGrammar.
+ configuration arguments parserName: #PPTokenizedLL1ExpressionGrammar.
+ configuration arguments scannerName: #PPTokenizedLL1ExpressionScanner.
parser := PPLL1ExpressionGrammar new compileWithConfiguration: configuration.
context := self context.
context initializeFor: parser.
@@ -579,7 +592,8 @@
setupSmalltalkGrammarCompiled
configuration := PPCConfiguration universal.
- configuration arguments name: #PPCompiledSmalltalkGrammar.
+ configuration arguments parserName: #PPCompiledSmalltalkGrammar.
+ configuration arguments scannerName: #PPCompiledSmalltalkScanner.
configuration arguments profile: profile.
parser := PPSmalltalkGrammar new compileWithConfiguration: configuration.
@@ -596,7 +610,8 @@
setupSmalltalkGrammarTokenized
configuration := PPCConfiguration tokenizing.
- configuration arguments name: #PPTokenizedSmalltalkGrammar.
+ configuration arguments parserName: #PPTokenizedSmalltalkGrammar.
+ configuration arguments scannerName: #PPTokenizedSmalltalkScanner.
configuration arguments profile: profile.
parser := PPSmalltalkGrammar new compileWithConfiguration: configuration.
@@ -622,7 +637,7 @@
setupSmalltalkNoopParserTokenized
- configuration := PPCConfiguration LL1.
+ configuration := PPCConfiguration tokenizing.
parser := PPCSmalltalkNoopParser new compileWithConfiguration: configuration.
context := PPCContext new.
context initializeFor: parser.