Added support for (user-defined) benchmark instruments.
* Introduced `BenchmarkMeasurementInstrument`, an abstraction to allow pluggin in a different
aspects to measure - execution time, number scavenges, number fo full GC's...
* Introduced `BenchmarkMeasurement`, a value object that holds a result of measurement
done by a single `BenchmarkMeasurementInstrument`.
* Code refactored so now `BenchmarkOutcome` now keeps a set of `BenchmarkMeasure`s
* Measurements from each instrument are in reports. JSON report keep 'times' array for backward
compatibility.
* Each platform may define it's set of intruments that is used by default and
__ALWAYS__. They should be non-intrusive.
* Added command line option `-i` / `--instrument` to specify user-defined instrument to use.
*
"{ Package: 'jv:calipel/s' }"
Object subclass:#BenchmarkMeasurement
instanceVariableNames:'value instrument'
classVariableNames:''
poolDictionaries:''
category:'CalipeL-S-Core-Measurement'
!
!BenchmarkMeasurement class methodsFor:'documentation'!
documentation
"
BenchmarkMeasurement is a simple value object that keeps a value
measured by some intrument
[author:]
Jan Vrany <jan.vrany@fit.cvut.cz>
[instance variables:]
[class variables:]
[see also:]
BenchmarkMeasurementInstrument
"
! !
!BenchmarkMeasurement class methodsFor:'instance creation'!
instrument: instrumentArg value: valueArg
^ self new instrument: instrumentArg value: valueArg
"Created: / 24-11-2014 / 07:15:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!BenchmarkMeasurement methodsFor:'accessing'!
instrument
^ instrument
!
value
^ value
! !
!BenchmarkMeasurement methodsFor:'initialization'!
instrument: instrumentArg value: valueArg
instrument := instrumentArg.
value := valueArg
"Created: / 24-11-2014 / 07:06:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !