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-- |
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 |