diff -r 46dd1237b20a -r 3b81c9e53352 compiler/benchmarks/PPCBenchmark.st --- 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 " ! ! +!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.