s/BenchmarkMeasurementInstrument.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 18 Mar 2016 22:41:49 +0000
changeset 312 c9a8fa71d8fc
parent 301 df951cc9a173
permissions -rw-r--r--
Web: Fixed filtering by tags in "Results" page "Results" page not allow for filtering by tags. * If both, configuration and tags are specified, only reports for specified configurations AND with at least one of the specified tags are shown. * If only tags are specified, then all reports on all configurations having at keast one of specified tags are shown. Kudos to Jan Kurs for forcing me to fix this :-)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
262
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:calipel/s' }"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
285
0cf54ee76de5 Normalized Windows OS identification string with Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 262
diff changeset
     3
"{ NameSpace: Smalltalk }"
0cf54ee76de5 Normalized Windows OS identification string with Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 262
diff changeset
     4
262
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
Object subclass:#BenchmarkMeasurementInstrument
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'CalipeL-S-Core-Measurement'
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!BenchmarkMeasurementInstrument class methodsFor:'documentation'!
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
documentation
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    Measurement instrument provides a way to measure a particular
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
    aspect (time, number og GCs, invocations of some method...).
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
    One may create a custom instruments and hook them in to measure
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    custom, application specific aspects.
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
301
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    22
    To run BenchmarkExamples with this instrument on, execute following:
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    23
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    24
        | suite executor |
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    25
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    26
        suite := BenchmarkSuite class: BenchmarkExamples.
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    27
        executor := BenchmarkExecutor new.
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    28
        executor instruments: { BenchmarkMeasurementInstrument new }.
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    29
        suite run: BenchmarkResultC new with: Dictionary new executor: executor.
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    30
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    31
    For more detailed description of measurement instruments
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    32
    see https://bitbucket.org/janvrany/jv-calipel/wiki/Instruments.md
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    33
262
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    [author:]
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
        Jan Vrany <jan.vrany@fit.cvut.cz>
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
    [instance variables:]
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    [class variables:]
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    [see also:]
301
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    42
        BenchmarkExamplesInstrument
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    43
        https://bitbucket.org/janvrany/jv-calipel/wiki/Instruments.md
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    44
                                                                     
262
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
! !
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
!BenchmarkMeasurementInstrument class methodsFor:'testing'!
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
isExecuttionTimeInstrument: instrument
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
    ^ (instrument respondsTo:#isExecutionTimeInstrument) and:[instrument isExecutionTimeInstrument]
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    "Created: / 02-12-2014 / 23:26:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
! !
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
!BenchmarkMeasurementInstrument methodsFor:'accessing'!
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
measurementInstrumentName
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    "Returns a human-readable name of this instrument"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    ^ self subclassResponsibility
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    "Created: / 01-12-2014 / 02:35:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
!
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
measurementUnit
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    "Return a string describing a unit of this instrument, i.e., msecs
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
     for time or '1' for plain counters"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    ^ self subclassResponsibility
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    "Created: / 24-11-2014 / 23:47:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
! !
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
!BenchmarkMeasurementInstrument methodsFor:'measurement'!
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
measurementStart:aBenchmarkInstance 
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
    ^ self subclassResponsibility
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    "Created: / 24-11-2014 / 08:14:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    "Modified (format): / 01-12-2014 / 02:44:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
!
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
measurementStop:aBenchmarkInstance 
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
    ^ self subclassResponsibility
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    "Created: / 24-11-2014 / 08:14:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    "Modified (format): / 01-12-2014 / 02:44:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
!
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
measurementValue
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    ^ self subclassResponsibility
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
    "Created: / 24-11-2014 / 08:14:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
! !
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
!BenchmarkMeasurementInstrument methodsFor:'testing'!
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
isExecutionTimeInstrument
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    ^ false
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
    "Created: / 24-11-2014 / 07:15:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
! !
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
!BenchmarkMeasurementInstrument class methodsFor:'documentation'!
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
version_HG
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    ^ '$Changeset: <not expanded> $'
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
! !
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112