benchmarks/JavaBenchmarkClassReader.st
author Stefan Vogel <sv@exept.de>
Fri, 17 May 2019 16:56:31 +0200
branchcvs_MAIN
changeset 3899 3c0aea90b463
parent 3188 d9a3d685c8b9
child 3370 0d56a220d44c
permissions -rw-r--r--
#REFACTORING by stefan Sanitize BlockValues class: JavaCodeBundleEditor changed: #canAddHolder #canEditHolder #canRemoveHolder
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
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Object subclass:#JavaBenchmarkClassReader
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
	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
     5
		classfiles1 classfiles2 classfiles3'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	classVariableNames:''
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	poolDictionaries:''
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	category:'Benchmarks-Java'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
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
!JavaBenchmarkClassReader class methodsFor:'running'!
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
run
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
    ^ (BenchmarkSuite class:self) run
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
    "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
    18
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
run: benchmark
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    ^ (BenchmarkInstance class:self selector:benchmark) run
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    "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
    24
    "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
    25
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
spy: benchmark
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
    ^ (BenchmarkInstance class:self selector:benchmark) spy
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    "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
    31
! !
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
!JavaBenchmarkClassReader methodsFor:'benchmarks'!
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
benchmarkReadClasses1
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    <benchmark: 'Read .class files 1'>
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    "
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    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
    40
    take most of the time
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    "
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    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
    44
        classfiles1 do:[:each |
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
            JavaClassReader readStream: each readStream
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
        ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    ]
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
    "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
    50
    "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
    51
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
benchmarkReadClasses2
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    <benchmark: 'Read .class files 2'>
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    "
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    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
    58
    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
    59
    "
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    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
    62
        classfiles2 do:[:each |
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
            JavaClassReader readStream: each readStream
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
        ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    ]
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
    "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
    68
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
benchmarkReadClasses3
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    <benchmark: 'Read .class files 3'>
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    "
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    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
    75
    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
    76
    "
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
    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
    79
        classfiles3 do:[:each |
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
            JavaClassReader readStream: each readStream
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
        ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    ]
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
    "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
    85
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
benchmarkReadGroovyJar
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    "/ 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
    89
    "/    <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
    90
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    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
    92
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    "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
    94
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
benchmarkReadSaxonJar
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
    <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
    98
    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
    99
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
    "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
   101
! !
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
!JavaBenchmarkClassReader methodsFor:'running'!
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
setUp
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
    <setup>
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    | bundle lib archive |
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
    booted := JavaVM booted.
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 ifTrue:[
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
        Smalltalk isStandAloneApp ifFalse:[
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
            Display notNil ifTrue:[
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
                (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
   116
                    AbortOperationRequest raise.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
                    self error:'Abort benchmark'.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
                    ^ self.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
                ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
            ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
        ].
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
   122
        JavaVM reboot.
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
   123
    ] ifFalse:[
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
   124
    	JavaVM boot.
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
    ].
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
   126
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
    bundle := (Smalltalk at:#'stx_libjava') javaBundle.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
    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
   130
    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
   131
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
    Smalltalk loadPackage: 'stx:libjava/libs'.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
    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
   134
    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
   135
    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
   136
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
    Smalltalk loadPackage: 'stx:libjava/libs'.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
    bundle := Java release javaBundle.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
    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
   140
    rt_dot_jar := lib classes.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
   142
    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
   143
    classfiles1 := #(
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
        'java/lang/Object.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
        'java/lang/String.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
        'java/lang/System.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
        'java/lang/Class.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
        'java/lang/ClassLoader.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
    ) collect:[:each |  archive extract: each ] .
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
    classfiles2 := #(
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
        'java/util/Map.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
        'java/util/List.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
        'java/util/Collection.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
    ) collect:[:each |  archive extract: each ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
    classfiles3 := #(
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
        'java/util/Vector.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
        'java/util/ArrayList.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
        'java/util/HashMap.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
        'java/util/HashSet.class'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
    ) collect:[:each |  archive extract: each ].
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
    "Created: / 21-05-2014 / 11:24:50 / 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
   165
    "Modified: / 21-05-2014 / 16:30:08 / 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
   166
!
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
tearDown
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
    <teardown>
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
    booted ifFalse:[
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
        Java flushAllJavaResources.
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
    ].
3188
d9a3d685c8b9 Force a garbage collect after each run of classreader benchmark.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3109
diff changeset
   174
    ObjectMemory garbageCollect.
3109
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
    "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
   177
! !
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
!JavaBenchmarkClassReader class methodsFor:'documentation'!
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
version_HG
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
    ^ '$Changeset: <not expanded> $'
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
! !
6d8f66f1ff39 [Class reader optimization 1/3]: Added JavaBenchmarkClassReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185