benchmarks/JavaBenchmarkClassReader.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 04 Feb 2019 00:24:10 +0000
changeset 3886 292b73957757
parent 3625 ad5f53826f0e
permissions -rw-r--r--
Fix initialization of system propertirs ...and use `amd64` consistenly instead of `x86_64`.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:libjava/benchmarks' }"
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
3370
0d56a220d44c Buildfiles: automatically generate calls to ant from makefile to build Java code (if any)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3188
diff changeset
     3
"{ NameSpace: Smalltalk }"
0d56a220d44c Buildfiles: automatically generate calls to ant from makefile to build Java code (if any)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3188
diff changeset
     4
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
Object subclass:#JavaBenchmarkClassReader
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:'booted rt_dot_jar groovy_all_X_Y_dot_jar saxon_A_B_C_D_dot_jar
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
		classfiles1 classfiles2 classfiles3'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	classVariableNames:''
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	poolDictionaries:''
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
	category:'Benchmarks-Java'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
!JavaBenchmarkClassReader class methodsFor:'running'!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
run
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
    ^ (BenchmarkSuite class:self) run
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
    "Created: / 10-06-2013 / 21:53:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
run: benchmark
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    ^ (BenchmarkInstance class:self selector:benchmark) run
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    "Created: / 31-05-2013 / 10:39:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    "Modified: / 10-06-2013 / 21:53:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
spy: benchmark
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    ^ (BenchmarkInstance class:self selector:benchmark) spy
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    "Created: / 21-05-2014 / 10:57:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
! !
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
!JavaBenchmarkClassReader methodsFor:'benchmarks'!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
benchmarkReadClasses1
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    <benchmark: 'Read .class files 1'>
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    "
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    Reads set of classes which contains natives. Actually, compiling native proxies
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    take most of the time
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    "
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    100 timesRepeat:[
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
    46
        classfiles1 do:[:each |
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
            JavaClassReader readStream: each readStream
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
        ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
    ]
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    "Created: / 21-05-2014 / 14:04:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
    "Modified (comment): / 21-05-2014 / 16:31:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
benchmarkReadClasses2
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    <benchmark: 'Read .class files 2'>
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    "
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    Reads set of classes which contains smalltalk extensions. Most of the time is spent
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    in compiling an installing those extension methods
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
    61
    "
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
    200 timesRepeat:[
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
    64
        classfiles2 do:[:each |
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
            JavaClassReader readStream: each readStream
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
        ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    ]
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    "Created: / 21-05-2014 / 16:30:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
benchmarkReadClasses3
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    <benchmark: 'Read .class files 3'>
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    "
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    Reads set of classes which contain no extensions nor native methods. This is the most
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    common case
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
    78
    "
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    200 timesRepeat:[
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
    81
        classfiles3 do:[:each |
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
            JavaClassReader readStream: each readStream
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
        ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
    ]
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
    "Created: / 21-05-2014 / 16:30:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
benchmarkReadGroovyJar
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
    "/ Does not work, contains some classes that requires ant to be loaded, sigh
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    "/    <benchmark: 'Read groovy-all-X.Y.jar'>
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
    92
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    JavaVM loadClassesIn:groovy_all_X_Y_dot_jar
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
    "Created: / 21-05-2014 / 11:29:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
benchmarkReadSaxonJar
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
    <benchmark: 'Read saxon-A.B.C.D.jar'>
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
    JavaVM loadClassesIn:saxon_A_B_C_D_dot_jar
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    "Created: / 21-05-2014 / 11:40:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
! !
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
!JavaBenchmarkClassReader methodsFor:'running'!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
setUp
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    <setup>
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    | bundle lib archive |
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
    booted := JavaVM booted.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
    booted ifTrue:[
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
        Smalltalk isStandAloneApp ifFalse:[
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
            Display notNil ifTrue:[
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
                (Dialog confirm: 'Java has to be rebooted in order to run a JavaClassReader benchmark. Reboot?') ifFalse:[
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
                    AbortOperationRequest raise.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
                    self error:'Abort benchmark'.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
                    ^ self.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
                ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
            ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
        ].
3625
ad5f53826f0e Issue #93 [1/3]: Added 2 simple benchmarks to measure performance of class loading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3370
diff changeset
   124
        booted := false.
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
   125
        JavaVM reboot.
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
   126
    ] ifFalse:[
3625
ad5f53826f0e Issue #93 [1/3]: Added 2 simple benchmarks to measure performance of class loading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3370
diff changeset
   127
        JavaVM boot.
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
    ].
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
   129
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
    bundle := (Smalltalk at:#'stx_libjava') javaBundle.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
    lib := bundle allLibraries detect:[:each | each name startsWith: 'groovy-all' ] ifNone:[ self error: 'Cannot find Groovy .jar' ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
    groovy_all_X_Y_dot_jar := lib classes.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
    Smalltalk loadPackage: 'stx:libjava/libs'.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
    bundle := (Smalltalk at:#'stx_libjava_libs') javaBundle.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
    lib := bundle allLibraries detect:[:each | each name startsWith: 'saxon' ] ifNone:[ self error: 'Cannot find Saxon .jar' ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
    saxon_A_B_C_D_dot_jar := lib classes.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
    Smalltalk loadPackage: 'stx:libjava/libs'.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
    bundle := Java release javaBundle.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    lib := bundle allLibraries detect:[:each | each name startsWith: 'rt.jar' ] ifNone:[ self error: 'Cannot find rt.jar' ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
    rt_dot_jar := lib classes.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
   145
    archive := ZipArchive oldFileNamed: rt_dot_jar.
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
    classfiles1 := #(
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
        'java/lang/Object.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
        'java/lang/String.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
        'java/lang/System.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
        'java/lang/Class.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
        'java/lang/ClassLoader.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
    ) collect:[:each |  archive extract: each ] .
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    classfiles2 := #(
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
        'java/util/Map.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
        'java/util/List.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
        'java/util/Collection.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
    ) collect:[:each |  archive extract: each ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
    classfiles3 := #(
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
        'java/util/Vector.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
        'java/util/ArrayList.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
        'java/util/HashMap.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
        'java/util/HashSet.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    ) collect:[:each |  archive extract: each ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    "Created: / 21-05-2014 / 11:24:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3625
ad5f53826f0e Issue #93 [1/3]: Added 2 simple benchmarks to measure performance of class loading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3370
diff changeset
   168
    "Modified: / 20-09-2016 / 00:28:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
tearDown
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
    <teardown>
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
    booted ifFalse:[
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
        Java flushAllJavaResources.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
    ].
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
   177
    ObjectMemory garbageCollect.
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
    "Created: / 21-05-2014 / 11:29:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
! !
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
!JavaBenchmarkClassReader class methodsFor:'documentation'!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
version_HG
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
    ^ '$Changeset: <not expanded> $'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
! !
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188