s/BenchmarkMeasurement.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 03 Dec 2014 23:53:25 +0000
changeset 262 8d2849dd3227
child 285 0cf54ee76de5
permissions -rw-r--r--
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>"
! !