benchmarks/JavaBenchmarkRunner.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 19 Jan 2013 19:23:53 +0000
branchrefactoring-vmdata
changeset 1983 03dcc3899eea
parent 1818 2e5ed72e7dfd
child 2014 9fa66342102b
permissions -rw-r--r--
Make all native methods source ending with ': nativeContext'. This will ease automatic refactoring. Also, rename method categories with prefix 'OLD -'.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
     1
"{ Package: 'stx:libjava/benchmarks' }"
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
     2
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
     3
StandaloneStartup subclass:#JavaBenchmarkRunner
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
     4
	instanceVariableNames:''
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
     5
	classVariableNames:''
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
     6
	poolDictionaries:''
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
     7
	category:'Benchmarks-Java-Framework'
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
     8
!
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
     9
1788
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
    10
JavaBenchmarkRunner class instanceVariableNames:'benchmark passes variant debugging profiler'
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    11
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    12
"
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    13
 The following class instance variables are inherited by this class:
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    14
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    15
	StandaloneStartup - MutexHandle
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    16
	Object - 
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    17
"
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    18
!
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    19
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    20
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    21
!JavaBenchmarkRunner class methodsFor:'initialization'!
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    22
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    23
initialize
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    24
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    25
    super initialize.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    26
    debugging := Transcript notNil and:[Transcript isView].
1780
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
    27
    variant := #runJ:
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    28
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    29
    "Created: / 06-11-2011 / 22:07:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1780
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
    30
    "Modified: / 31-10-2012 / 23:42:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    31
! !
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    32
1788
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
    33
!JavaBenchmarkRunner class methodsFor:'accessing'!
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
    34
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
    35
profiler
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
    36
    ^ profiler
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
    37
! !
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
    38
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    39
!JavaBenchmarkRunner class methodsFor:'command line options'!
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    40
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    41
cmdlineOptionBenchmark
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    42
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    43
    ^CmdLineOption new
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    44
        short: $b;
1769
19ca80b8a756 - JavaBenchmarkRunner
vranyj1
parents: 1766
diff changeset
    45
        long: 'benchmark';
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    46
        description: 'benchmark to run (class name)';
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    47
        action:[:option |
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    48
            benchmark := Smalltalk at: option asSymbol.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    49
            benchmark isNil ifTrue:[
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    50
                Stderr nextPutLine: 'ERROR: No such benchmark: ', option.
1788
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
    51
                self exit: 0.
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    52
            ]
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    53
        ]
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    54
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    55
    "Created: / 31-10-2012 / 10:49:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1788
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
    56
    "Modified: / 02-11-2012 / 02:32:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    57
!
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    58
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    59
cmdlineOptionJava
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    60
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    61
    ^CmdLineOption new
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    62
        short: $j;
1769
19ca80b8a756 - JavaBenchmarkRunner
vranyj1
parents: 1766
diff changeset
    63
        long: 'java';
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    64
        description: 'run Java version of the benchmark (default)';
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    65
        action:[
1780
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
    66
            variant := #runJ:
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    67
        ]
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    68
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    69
    "Created: / 31-10-2012 / 11:03:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1780
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
    70
    "Modified: / 31-10-2012 / 23:41:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    71
!
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    72
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    73
cmdlineOptionPasses
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    74
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    75
    ^CmdLineOption new
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    76
        short: $n;
1769
19ca80b8a756 - JavaBenchmarkRunner
vranyj1
parents: 1766
diff changeset
    77
        long: 'passed';
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    78
        description: 'how many passes to run (integer)';
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    79
        action:[:option |
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    80
            passes := Integer readFrom: option onError:[
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    81
                Stderr nextPutLine: 'ERROR: Not an integer value: ', option.
1788
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
    82
                self exit: 0.
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    83
            ]
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    84
        ]
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    85
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    86
    "Created: / 31-10-2012 / 10:52:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1788
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
    87
    "Modified: / 02-11-2012 / 02:32:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    88
!
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    89
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    90
cmdlineOptionSmalltak
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    91
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    92
    ^CmdLineOption new
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    93
        short: $s;
1769
19ca80b8a756 - JavaBenchmarkRunner
vranyj1
parents: 1766
diff changeset
    94
        long: 'smalltalk';
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    95
        description: 'run Smalltalk version of the benchmark';
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    96
        action:[
1780
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
    97
            variant := #runS:
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    98
        ]
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
    99
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   100
    "Created: / 31-10-2012 / 11:04:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1780
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   101
    "Modified: / 31-10-2012 / 23:41:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   102
!
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   103
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   104
cmdlineOptionSmalltak2Java
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   105
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   106
    ^CmdLineOption new
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   107
        short: $k;
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   108
        long: 'smalltalk2java';
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   109
        description: 'run cross-language version of the benchmark';
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   110
        action:[
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   111
            variant := #runS2J:
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   112
        ]
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   113
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   114
    "Created: / 31-10-2012 / 23:42:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   115
! !
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   116
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   117
!JavaBenchmarkRunner class methodsFor:'defaults'!
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   118
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   119
allowCoverageMeasurementOption
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   120
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   121
    ^true
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   122
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   123
    "Created: / 13-01-2012 / 11:48:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   124
    "Modified: / 31-10-2012 / 10:38:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   125
!
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   126
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   127
allowDebugOption
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   128
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   129
    ^true
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   130
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   131
    "Created: / 21-07-2011 / 09:48:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   132
! !
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   133
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   134
!JavaBenchmarkRunner class methodsFor:'startup'!
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   135
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   136
setupToolsForDebug
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   137
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   138
    super setupToolsForDebug.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   139
    debugging := true.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   140
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   141
    "Created: / 06-11-2011 / 22:06:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   142
!
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   143
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   144
usage
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   145
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   146
    Stderr nextPutLine:'usage:'; cr;
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   147
           nextPutAll:'   benchmark-runner.';
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   148
           nextPutAll: (OperatingSystem isMSWINDOWSlike ifTrue:['bat'] ifFalse:['sh']);
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   149
           nextPutAll: ' -b <benchmark> -n <n>'; cr; cr.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   150
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   151
    Stderr nextPutLine:'  --help .................. output this message'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   152
"/    Stderr nextPutLine:'  --verbose ............... verbose startup'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   153
"/    Stderr nextPutLine:'  --noBanner .............. no splash screen'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   154
"/    Stderr nextPutLine:'  --newAppInstance ........ start as its own application process (do not reuse a running instance)'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   155
"/    self allowScriptingOption ifTrue:[
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   156
"/        Stderr nextPutLine:'  --scripting portNr ...... enable scripting via port (or stdin/stdOut, if 0)'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   157
"/    ].
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   158
    self allowDebugOption ifTrue:[
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   159
        Stderr nextPutLine:'  --debug ................. enable Debugger'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   160
    ].
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   161
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   162
    "/                 '  ......................... '
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   163
    Stderr nextPutLine:'  -b <benchmark>'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   164
    Stderr nextPutLine:'  --benchmark=<benchmark> . benchmark to run (class name)'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   165
    Stderr nextPutLine:'  -n <n>'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   166
    Stderr nextPutLine:'  --passes ................ how many passes of given benchmark (integer)'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   167
    Stderr nextPutLine:'  -j'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   168
    Stderr nextPutLine:'  --java ..,............... run Java version of the benchmark (default)'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   169
    Stderr nextPutLine:'  -s'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   170
    Stderr nextPutLine:'  --smalltalk ............. run Smalltalk version of the benchmark'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   171
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   172
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   173
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   174
    "
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   175
    self usage
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   176
    "
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   177
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   178
    "Created: / 13-01-2012 / 11:48:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   179
    "Modified: / 31-10-2012 / 11:05:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   180
! !
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   181
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   182
!JavaBenchmarkRunner class methodsFor:'startup-to be redefined'!
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   183
1788
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
   184
exit: code
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
   185
    debugging ifFalse:[
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
   186
        Smalltalk exit: code
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
   187
    ].
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
   188
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
   189
    "Created: / 02-11-2012 / 02:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
   190
!
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
   191
1780
0539eae51568 - PrimitiveArguments
vranyj1
parents: 1769
diff changeset
   192
main:argv
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   193
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   194
    "Process command line arguments"
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   195
    | parser |
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   196
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   197
    parser := CmdLineParser new.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   198
    [               
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   199
        parser parse: argv for: self.        
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   200
    ] on: Error do:[:ex|
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   201
        Stderr nextPutLine:'Error when processing options: ', ex description.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   202
        debugging ifFalse:[     
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   203
            ex suspendedContext fullPrintAllOn: Stderr.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   204
            Stderr nextPutLine:'Exiting'.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   205
            Smalltalk exit:1.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   206
        ] ifTrue:[
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   207
            ex pass
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   208
        ]        
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   209
    ].
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   210
1798
ee814b63d056 Setup fixes (stack size, required for Ackerman
vranyj1
parents: 1789
diff changeset
   211
    "Set stack size to 16MB"
ee814b63d056 Setup fixes (stack size, required for Ackerman
vranyj1
parents: 1789
diff changeset
   212
    Processor activeProcess setMaximumStackSize: ((1024 * 1024 * 16) max: Process defaultMaximumStackSize).
ee814b63d056 Setup fixes (stack size, required for Ackerman
vranyj1
parents: 1789
diff changeset
   213
ee814b63d056 Setup fixes (stack size, required for Ackerman
vranyj1
parents: 1789
diff changeset
   214
    "Setup for performance"
ee814b63d056 Setup fixes (stack size, required for Ackerman
vranyj1
parents: 1789
diff changeset
   215
    JavaNativeMethod cacheNativeImplementation: true.
ee814b63d056 Setup fixes (stack size, required for Ackerman
vranyj1
parents: 1789
diff changeset
   216
    ObjectMemory justInTimeCompilation: true.
ee814b63d056 Setup fixes (stack size, required for Ackerman
vranyj1
parents: 1789
diff changeset
   217
    ObjectMemory javaNativeCodeOptimization:true.
ee814b63d056 Setup fixes (stack size, required for Ackerman
vranyj1
parents: 1789
diff changeset
   218
    ObjectMemory javaJustInTimeCompilation: true.        
ee814b63d056 Setup fixes (stack size, required for Ackerman
vranyj1
parents: 1789
diff changeset
   219
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   220
    [
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   221
        | time |
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   222
1789
a4afad704bcb Fixes in callgrind integration
vranyj1
parents: 1788
diff changeset
   223
        Profiler valgrind runningUnderValgrind ifTrue:[
a4afad704bcb Fixes in callgrind integration
vranyj1
parents: 1788
diff changeset
   224
            profiler := #callgrind
a4afad704bcb Fixes in callgrind integration
vranyj1
parents: 1788
diff changeset
   225
        ].
a4afad704bcb Fixes in callgrind integration
vranyj1
parents: 1788
diff changeset
   226
1788
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
   227
        time := benchmark new 
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
   228
                    profiler: profiler;
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
   229
                    perform: variant with: passes.
1766
897ef72ca74e - JavaBenchmarkRunner
vranyj1
parents: 1765
diff changeset
   230
        Stdout nextPutLine: 'EXECUTION TIME: ' , time printString.
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   231
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   232
        debugging ifFalse:[
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   233
            Smalltalk exit:0.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   234
        ].
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   235
    ] on: Error do:[:ex|
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   236
        Stderr nextPutAll:'Error when running benchmark: '.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   237
        Stderr nextPutAll:ex description; cr.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   238
        ex suspendedContext printAllOn:Stderr.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   239
        debugging ifFalse:[
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   240
            Smalltalk exit:1.
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   241
        ] ifTrue:[
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   242
            ex pass
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   243
        ]
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   244
    ]
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   245
1788
8ac0e8cdcb62 - JavaBenchmarkRunner
vranyj1
parents: 1780
diff changeset
   246
    "Modified: / 02-11-2012 / 02:26:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1762
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   247
! !
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   248
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   249
!JavaBenchmarkRunner class methodsFor:'documentation'!
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   250
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   251
version_SVN
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   252
    ^ '$Id::                                                                                                                        $'
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   253
! !
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   254
d67be8cbec02 - JavaBenchmark
vranyj1
parents:
diff changeset
   255
JavaBenchmarkRunner initialize!