Adaptive Optimization in the Jalapeno˜ JVM
£ £ £ £ £
Matthew Arnold ¢¡ Stephen Fink David Grove Michael Hind Peter F. Sweeney
£ IBM T.J. Watson Research Center Rutgers University
¤¦¥¨§ © ¦ ! " #$¥%'&)(*¥,+ .- !+ /,
102 3¨ &4/,¥,+ 2( 52¥,+ ,6(
ABSTRACT /2*6'¥2)/ Q" 3¨058¨¦ !520¦,52¥,m58T" ¨/,033¨T:/ Q" 3 *1,0/2: 1,58*6
=?¨58Y0J© ^ ,Z¥2,5C#;¦"*58¨ @¨F,058¨¦ ¥X58*!© ¥25C58¨ :!¨5C=?0¥: 9
(*58( ) ¨ 9$"¢2#$¦ :0 /,;58( 03< 10/2 ,¥>=?33¨ @"¦>"¢29
7
¦ 6,+XG? ,¥2C58(*0¦34 10/2 ,¥: */3(* X,023¨Ta=?2 I¥8( / Z0'¥
#A :0¦ */,B58¦(*¦C¥2" ¨¥258¨/052,D 3 *>#$,,6-*0'/ 69E6,/,52,C¦"9
58 CRU 1033¨5203 69E®'¯yst¦°vj0¦ *aRU3#9E±²Xs¨²,uvj¥2T6¥252 :¥,<0¥;=B¢33j0¥;0
58¨ @¨F,058¨¦ *¥,+HG? ¨¥!"*0¦"¢I"¥2¢ 52¥J58 K0¦/ ¨52,/,58( L#C58
6( b-j# :/,¢ 5 0¦¦0)¥2T6¥252 :¥?s.²'³'u ²,° °m´vE+cOL¥2,/,¦ *
0¦3¨0"6N *IO4 0" 58¨DP)" 58¨ Q¨F,058¨¦ SRUT6¥252, D<0!¥2T6¥252, V52!¥8( "9 M
M
=?0¦;¦#j :;¥2¦" ¨¥258¨/,0'52,K58( 03j :0'/ *¥4 :¦!-,T¦ *
"W5X3¨,06 *¦9E,'Y58(*0¦3C :0'/ *Z52,/2 3¨'T[0¦ *[ *0¦-3¨
58 ¨¥)¥8¨ @"3¨@¥258052,'T:- T\ T 0 Q¨/,0¦33¨TJ¥23¨,/,58 \01¥8(- ¥2,5>#q033
¦ *' \,¥20/2X D¦ 3 Q#$,U- 0/2 69EU,/52,X" 58¨ Q¨F,0'58¨ ¥,+
¢^ ,/(*52,D :,58 6¥?#$¦?¦"*58¨ @¨F,058¨¦ cf05252, @"*58 :52;#$6/¢( ¥?" 9
I,¥2/2-K58 X¢^ 52¢ ¥8-3¨L¥2T6¥252, _0/2¨52/,58('4-*0'¥2,Y
]
58¨ Q¨F,0'58¨ I¢~W5?¦ \" ¦0 µ 5?¥8"W52¥,+BRUT6¥252 :¥ X58 ¨¥?/,0'589
0C#$, ¢058¨¦ Z#>58 ,0 ¥@=`¨58a0¥2T /2¦ *¦(*¥C/,' : b( ¨/,058¨¦ c+
,'T! /¢3(* DRU3#9E±³Js ³6t,v858 @45R"'5 {Hs ³'°vE58*1B{
M6z \" ,¥2¢ 5C0¦ d¨ @"3¨, 1¢ 52058¨¦ [¦#;58 ! *¢0¦3e0/2¨52,/58(
]
0¦¦0 ( ¥2589$ 9EG?¨ :X/,' Q"3¨J|$'¢¥8¨ S³+ ¯6}\s °³¦v8 P¸s.²®vE
M M M6¶e· 58 05f¥8(" "¦52¥<0 0" 58¨> b( 3¨589$3¨,3*¦"*58¨ Q¨F058¨ C- 0¥2,;" (¢3¨T
0 Y58 ! ¨58¨0¦3:¥2520'I#;58 03¨0"WUN *LOe0¦"*58¨'LP)"*58¨ @¨F,09
M ¦ Y¥2520'58¨¥258¨/,03@¥20' Q"3 + D, Q" 2¨/,033gTY , : ¥258052I58 05
]
58¨ ¹RUT6¥252 µ ,¥2/¢2-,! k58¨¥?" 0"¦+?R6 1;¥2,/, 698=B0';29
58 ¨¥;"¦©3 K52,/2 ¨h( !*0'¥b3¨¦=i¦¢2 ,0L0¦ *K/0 K¨ Q" ¦
58( 03f :0/2 *,¥e03¨¥2Q /¢3( ;3¨ Q¨52,!#A :¥?¦#<¦ 3 b#A,,6-*0'/ 69
¥2520¦58("10 ;¥252,0'T9E¥252052j"¢2#$¦ :0 /,', @=`¨58 ( 5<58 c",¥89
6,/,52,L" 58¨ Q¨F,0'58¨ |$+ +Q 3 K ZR6¢3#9E±³m}¢c-( 5; ! *'5
*/,C¦#4¦ 3 !#$,U- 0/2 69EU,/52,L" 58¨ Q¨F,058¨¦ ¥,+KG? Q" 0"¢
,¢3¨¦"p¢ ¢0¦3; :,/2 0 ¨¥2 :¥!#$º0 0" 58¨K¦ 3 ¹#A,,6-*0'/ 69
0¦3¨¥2C,¥2/2-,¥;0 X,¦03( 052¥40 k 3 *:#$,U- 0/2 69EU/,52,X 9
6,/,52,X¦"*58¨ Q¨F058¨ q+
3 X" 58¨ Q¨F,058¨¦ K- 0¥2,D X¥2520'58¨¥258¨/,03B, ;¥20' Q"3 +>G?
¥2T6¥252 l¨¥j=?2¨5252¢ C/,' Q" 3¨,52¢3¨TQ 0¦¦0m0" "3¨T :58 ?¥2/¢2-,
M
O» 6( ;-¢1#?,¥20/2K"§¢,/52¥b 0¦C¢^6" 3¨,L :¦\0'¦,¥89
52/ ¨h( ,¥J 5X¦ 3¨TY52Z0" "3¨/058¨ n/,6 K0 o¥2520¦ * 0p39
¥8¨@#$ :¥e#BT 0 @¨/\/ Q" 3¨058¨¦ os ³6¼6c± <²¦t6<²,³f®ft'´Uft¦®
- 02¨¥,*-( 5>03¨¥2C52:58 Q58( 03q :0/2 Q¨52¥2¢3#r+
³® c³m´Uj²,± c³'±vE( ¥8 *!2( 58¨ :: #$ :0'58¨ Z52!520¦3¨158*1¢^69 ,/¢( 520- 3¨:52:¨52¥4/(2¢ 5e¢ :¢ 5,+e{X¥25e#B58*¥2Q¥2T6¥252, 1¥
1. INTRODUCTION =?¢? 5<#( 33¨T\0¦(*52' :058¨/'0¦ *C¥24#$0¦¦#$,=Z#f58 ,¥2>52,/ ¨h(*,¥
G? >T 0 Q¨/4 058( 4¦#f58* 0¦04" ¦0 : Q Q3¨0¦ *¦(*0'Cst¦uv
M
0'!0¦""0,L Y :0¦ *¥258,0' {X¥,+a4¦=?,'¢¦j58*,¥2D¥2T6¥89
M6z
" ,¥2¢ 52¥c-W58158*<3¨0',¥25
52, :¥j*0¦; , :¦ *¥2580'52,!58 05>¦ 3 b#A,,6-*0'/ 69E6,/,52,X¦"*589
¨58TC#$> ¨ 9$"¢2#$¦ :0 /, 0¦¦0Q¨ Q" 3¨, :¢ 520'58¨ ¥,+ewc0¦ *¦(*0'
M
Q¨F,0'58¨ ¥;/,0 IT¨3¨J¥8( -*¥2520¦ 58¨03j"¢2#$¦ :0 /,;¨ Q" ', :¢ 52¥,+
#A,058( ,¥:¥8( / S0¥: T 0 Q¨/I/¢3¨0¥2¥:3¨'06 *L0 dx*,/58¨ y" ¢9
5>¥2, :¥>/¢3¨,0 58*0'540Q m,T!/ Q"¦ * 5) I58 b( "/,' Q *D58
'¢ 5;¥2580¨¦ 58#$=B0K0¦"" 3¨/,058¨¦ *¥C¦#?580'U¨58¨¦ *0¦3>¥252058¨/:/ Q9
=?0¦e#< ¨ 9$"¢2#$¦ :0 /,:58( 03q :0/2 ,¥e=`33f-;¥2" ¨¥2589
" 3¨058¨¦ K0¦ *: 52¢2" 6/,,6( 03<¦"*58¨ @¨F,058¨¦ <+>O4¥j0b¥8(3¨5, 0¦¦0
M
/,0'52,!0'0¦"*58¨': 3 *@#$,,6-*0'/ 69E6,/,52,I" 58¨ Q¨F,0'58¨ ¥,+
58(*0¦3?{X0'/ !| {I}?¨ Q"3¨ :¢ 52¥; 0'b ',¥252,K¥8¨¦ #g9
z M6z
¨/0 5@¢~5; L ,3¨" *K T 0 Q¨/C/,' Q"3¨¥Q#$ 0¦¦0+1?¢9
M
03¨0¦"6N Yst6³¦v>¨¥:0¹¥2,0/2 {½- *L ,¢3¨¦",Y0'5:58*
M M6z
/0( ¥2XT 0 Q¨/X/ Q" 3¨058¨¦ [6/,/(¥C6(2 L0" "3¨/,0'58¨ ¢^ ¢9
B{HGb+ + 052¥2¦ L¾>,¥2,0¦/ Z¿?¢ 52¦+QG? ¨¥b" 0"W¢; 586U( /,,¥
M ]
/(*58¨¦ c T 0 Q¨/@/,' Q"3¨¥4 ;(*¥25>/,0¦¢#( 33¨T\- 03¨0 /,@" 58¨ Q¨F,0¦9
58 03¨0"WUN *DO4 0" 58¨1P)"*58¨ @¨F,058¨¦ ZRUT6¥252 !*0Q m,T!/ Q"¦9
M
58¨¦ [~,/,58¨'¢ *¥2¥J=?¨58/, Q" 3¨058¨¦ '¢2 ,0p52L :0^6¨ Q¨F
¢ 5:#e58 03¨0"WUN * {K+fÀÁ,¨¦(*¥:" 0"¥!st6>²,°vB-2¨¢x T
M M6z
52'5203f¥2T6¥252, i"¢2#$¦ :0 /,+j4¦=?¢¦ T *0' Q¨/;/, @"3¨¢¥e/,0
,¥2/¢2-X58 C0 0" 58¨X" 58¨ Q¨F,0'58¨ p¥2T6¥252, Â0'5Q0X¨¦L3¨,¢3$+
0¦3¨¥2K¢^6" 3¨¨5:2( 58¨ :! #A :0'58¨ p52!"¢2#A ¦"*58¨ @¨F,058¨¦ *¥
G?¨¥j"*0¦"¢?" ,¥2¢ 52¥>58 `© ¥25? ,¥2/¢2" 58¨ I¦#c58 40¦/ ¨52,/,58( 03
-W,T¦ *X58 Q¥2/";¦#j0Q"( ¢3¨TX¥2520'58¨/;/, Q" 3¨058¨¦ L :6 ¢3$+
,5203¨¥,¨ Q" 3¨, :¢ 520'58¨ fc0¦ *!"2#$ :0¦ */b,¥8( 3¨52¥,+
G? !©¥25C=?0¦'!#@58( 03 :0/2 *,¥C"¦¨ , (*¥2589rA 9EG?¨ :
M
G?*; 10 I/,¦ 582-( 58¨ ¥Q¦#j58¨¥?" 0";0
| $Ge})/,' Q"3¨0'58¨ Z58 054¢3¨,a a¥8¨ Q"3¨C¥2520'58¨/\¥2580'52,¨¥;52
M
/
0 a¢^ 52¢ ¥8-3¨X0'0¦"*58¨'C" 58¨ Q¨F,058¨¦ Y0¦/ ¨52,/,58( C58*0'5
2000 ACM Ã
-58p¥8( " "52¥X/¢( 2¢ 5:3¨,0'U 9E, {Ä52,/2 *¦3¨T This copy is posted by permission of ACM and may not be redis- M6z tributed. The official citation of this work is Arnold, M., Fink, S., 0 X¢ 0- 3¨,¥),¥20/2! 52:¦ 3 b#A,,6-*0'/ 69E6,/,52,I" 9 Grove, D., Hind, M., and Sweeney, P.F. 2000. Adaptive Optimization 58¨ Q¨F,0'58¨ f
in the Jalapeno˜ JVM. :cV*¦?Wbi<,,2,4KB$,¢¦
58*j , : ¥258058¨¦ C# 3¨¦=?98¦'¢2*0@¥20 Q" 3 *;52/ ¨h( ,¥
Ã
j¢AW :r¡mr¢£Q£@ ¡¤j*¥¦$,£Q¦¤<¢ ¡§ ¢¦¡U,¦¤<¢ 1`¨6¨©
52LU2¨'K0 0" 58¨K0¦ *Y¦ 3 K#$,,6- 0/2 6986,/,52o¦"*589 ¬6¬, ¢6$*¦bªej*I« , Minneapolis, Minnesota, October 15–19, 2000. Q¨F,0'58¨ ¥,
¿`' Q" 3¨¢ ?T652,/6@?T652,¥ ¦{!33¨¥2/
58*> , :¦ *¥2580'58¨ I#f0¦ !0'0¦"*58¨';" 58¨ Q¨F,0'58¨ a¥2T6¥252,
Ã
58*0'5?(*¥2,¥> ;(3¨58" 3¨C" 58¨ Q¨F,0'58¨ K3¨,'¢3¨¥;52Q¨ Q" ¦;"¢29 ?0¥2¢3 t´¦°+¨²,°
#$ 10 /,Q/ Q" 0,I52Q( ¥8 *X¦ 3¨TX0C¥8 3¨Q3¨¢3B#j¦"9 P)"*5>wc¢3q¯ ®+ ´´
58¨ Q¨F,0'58¨ fc0¦ * P)"*5>wc¢3B² ³+ ¼±
P)"*5>wc¢3Át tU+ ¯6´
0 L ¨58¨034¨ @"3¨, 1¢ 52058¨¦ [0¦ *Z,¦03( 058¨ p¦#;¦(:© ¥25
Ã
3 *C#$,,6- 0/2 6986,/,52y" 58¨ Q¨F,0'58¨ 3 I-*0'¥2,
@3¨¦=`9E¦2*,0'!¥20' Q"3 : 0520 + ¥ ¥ §!"£#%$'&()§*+(,#.- §*£/0#%- *+12 "¦',¥"¢2#A :0¦ */,4- TD²²¢¡i D0¦¢0' =?¨58\¨ @"¦9 346587:9;<$'=¥>?@ -2"A1$B ;C'/¢D(* :¢ 52¥?0 \( "X52º´³£¡C+ ¢ ¢058¨¦ /, ¥2520 5,@58T"W4 9 6( 33$:0¦ *p/,¦" T G? ? *¢^ 5<¥2/,58¨ C" ¨ ,¥?¥2' :?-*0'/ ¦( *C¦ C58* 0¦3¨0"6N M "¦"*0'058¨¦ 2¤ /,¦ *¥2520¦ 5Á#A3¨6 *;0¦ *@02¨58 :,58¨/e¥8¨ Q9 {K+ M6z M "3© /,058¨¦ 2¤ ( ,0'/ 0- 3¨>/,6j¢3¨ Q 058¨¦ ¤ 0 Q3¨ Q9 0'0¦"*58¨':" 58¨ Q¨F,0'58¨ L¥2T6¥252 0 !¨¦3¨¦ 52¥b m,T:¨¥2¥8(*,¥;0¦ * *0'58¨ Z#?U( * 0 5: 6( 33¨/ ,/2 ¥,?/2*/ m/,0¥252¥,<0¦ * ,¥8¨¦ L/¢¨¥8¨ ¥,+CR6,/,58¨¦ K°C ,¥2/¢2-,¥@58 Q,/,' Q"3¨0'58¨ L¨ Q9 020¦TC¥252;/2*,/2 ¥,+ " 3¨, : 52058¨ f+ RU,/58¨ ¼Q¥2/¢2-,¥;¦(e©¥25> 3 º#A,,6-*0'/ 69 6,/,52J¦"*58¨ Q¨F058¨ f<0'0¦"*58¨'Q 3 +;R6,/,58¨¦ KuQ" ,¥2¢ 52¥ 0¦(*' :¢ 52¥<3¨,¢3W¯;=`¨58º0 U¨58¨¦ *0¦3c3¨6/,0¦3" 9 ,© E ^6"¢2¨ :¢ 520¦3> 0520! , :¦ *¥2580'58 *X58 05;¥20' Q" 3 *X¨¥4-58a0 58¨ Q¨F,058¨¦ *¥1¥8(*/2K0'¥;/, 1 : a¥8(-W¢^6"¥2¥8¨ Z¢3¨ Q9 ~,/,58¨'!0 X3¨=?9E¦¢2 ,0'd 1,/ 0 ¨¥2 ¸#$@62¨ J0'0¦"*58¨' *0'58¨ f0¦20¦T!-( * ¥@/ ,/2 K¢3¨ @ *0'58¨ f?0 X¢9 ¦"*58¨ @¨F,058¨¦ c+ZR6,/,58¨¦ Y´\" ,¥2¢ 52¥@0X6¨¥2/¢(*¥2¥8¨¦ p#e( 1¢^6"¢9 U( * 0 5C3¨0'y¢3¨ Q 058¨ f+i$5:03¨¥2a0 ¥: 3 ¨ * 2¨ */,¥,+ *0¦33¨T>R6,/,58¨¦ L®X6¨¥2/¢(*¥2¥2¥Q¢3¨052d=B2 I0 LR6,/¢9 -*0'¥2,; @¥2520'58¨/¢9E¥8¨F,?*¢( 2¨¥258¨/,¥, F?3¨- 03 x =?9$ ¥2¢ *¥89 7 58¨¦ I±:~W¢¥4¦(e/,¦ */¢3( ¥8¨ ¥,+ ¨58¨@/," TC0 X/,¦ *¥2520¦ 5`" " 0'058¨¦ cf3¨¦-*0¦3 *¥2¢ ¥8¨58¨a,0'y0'¥2¥8¨ :¢ 5!3¨ Q *0'58¦ cbRU582 9 (~W¢@¥2T */2 ¨F,058g S" 58¨ Q¨F,058¨¦ *¥,B0 K¥2/,0¦3¨0 2. BACKGROUND ¢"3¨0'/,, : 54#j0'¦,0'52,¥40¦ *X¥8 5>020¦T6¥,+ G? 03¨0¦"6N {µ¨¥<0>,¥2,0/2 {µ520',58 ;¥2¢¢j0¦"" 39 M M6z M6z /058¨ ¥,+IOµ/,' Q" ¢* *¥8¨'X,¥2/2"*58¨¦ Y# 0¦3¨0"6N I0" ",0¥ M 0( :¢ 52¥C3¨,3C²X=?¨58pR RUO>9- 0¥2yx*¦=?9 ,©HG s tvE+A p58 ¨¥X¥2,/,58¨ =?X¨¦3¨¦ 5K58 J/2*0¦0/,522¨¥258¨/,¥J¦# ¥2¢ *¥8¨58¨'4¦"*58¨ Q¨F058¨ ¥,+eA º0 U¨58¨¦ X524580'U¨58¨¦ *0¦3 0¦3¨0"6N *D58*0'5)0¦; :¥25?¢3¨0¦ 5452:58 ¨¥4=B2 + M RR6OÂ" 58¨ Q¨F,058¨¦ *¥L¦ p¥2/,03¨0¦I0¦2¨0- 3¨,¥ys tU²v8e58* ¥2T6¥252, 03¨¥2L(*¥2¥J0¦ [¢^ 52 * ,['¢¥8¨ i¦#:O>20¦T 0¦3¨0"6N *L¨¥!=?2¨5252¢ y 0¦¦0ys ³vE+A Y0'6¨58¨ 52J" ¦¨U M M RR6O #A s t¼,ve52¹"2#$ ,6( * 0 5C3¨0Z¢3¨ Q9 0X ¨ 93¨¢3 ¥258 3¨T9E58T"Y,'¢3¨" :¢ 5C¢ ¦ * 1¢ 5,>58¨¥ *0'58¨ a0 !020¦TC-( * ¥4/2 ,/ k¢3¨ Q 058¨¦ Ys.²'²¢vE+ ,¥8¨¦ ! ,/¢¨¥8¨¦ X0¦33¨=>¥?58 >52,/2 ¨h(*¥?¥2/¢2-,C C58¨¥<" 0"¢ 5210" "3¨T! 5e 3¨T!52:0¦"" 3¨/,058¨ /,6'- (*5e03¨¥2C52:58 { M6z G<0- 3¨Q²e¨',¥>58*e0¦¢0';/,' Q"3¨0'58¨ I052>#$B58*e/, @"3¨¢¥ ¨52¥23#2+>G?*0'5)¨¥,*=B;0" "3¨TX0'0¦"*58¨':" 58¨ Q¨F,0'58¨ Z52:58 { M6z ( ¥2,d p58 ¨¥:"*0¦"¢D S58*XÀ<¦=?¢ÀB¿µ :0'/ *I ,¥2/¢2-,y ¥8( - ¥2T6¥252, :¥, /¢3( U L58*1/, Q" 3¨¢¥,>58 :58 ,0L¥2/2*,6( 3¨¢¦ R6,/,58¨ Iu + 58 >0¦2-*0';/,¦33¨,/,52¦ 0 :58 40 0" 58¨;¦"*58¨ @¨F,058¨¦ I¥2T6¥252, ¨52¥23#2+ 03¨0¦"6N : ;(3¨58" 3¨¢^ ,¥ 0¦0;58 ,0 ¥?¦ 52 { M M M6z ¦§*¢©,¨r,¦¢ =? ¨/ I0¦b¨ @"3¨, 1¢ 52,I0¥4O JIY"*58 ,0'¥,+>G? Q¥2T6¥252, 0¦3¨0"6N *Z, Q" 3¨T6¥D0K/,' Q"3¨98¦ 3¨TY¥2580'52,T¥¤e¨5\/ Q" 3¨,¥X033 M ¦¢¦ ¥8( ""¦52¥>58,0'!¥2/2*U( 3 *D=?¨58X0@h(*0'¥89" ,, @"*58¨': :,/2*0¦9 1,58*6 ¥452@ *0'58¨@/,6;-¢#A;58 ,T!¢^ /¢(*52'+?¿( 2¢ 583¨T58 ¨¥2 !+6Kj0/2I/, Q" 3¨¢1¢ ¢0'52,¥ =? ¨/ a0;"¦9 ¥2T6¥252 /¢3( ,¥;5E=?;#(33¨TX¦"¢0'58¨ 03B/, Q" 3¨¢¥,+ ¥$,©¨ 4¨ ¦ 0' "¦ 52¥C=` ¢D58*C2( L580L/ ,/2 ¥C0X,6¨/,0'52, - ¨5Q Z0J :0'/ X/, 58¦3?,¨¥252!52X ,52¢ @ *!#>¨5:¥8 ( 3¨ G?* /, @"3¨¢B580 ¥83¨052¥c- T652,/,6 ,¥<U/,583¨T4 52 à T¨¢3¨L58 Q58( 03?" 6/,,¥2¥2¦¦+C¿( 2¢ 583¨T<58 Q/ Q" 3¨¢¥Q ¥2¢5 ¢¦,,©W *0'58¨C/,6 Q- TX¥8¨ ;(3¨0'58 * 0¦¦0§¦ ¥;"W¢0 K¥2520/2 +:G? M 58 ,¥2XT¨¢3¨Y" 52¥! S :,58 6y"¦3¨( ,¥X0¦ *Y¦ y3¨6"p- 0/2 /, @"3¨¢a 6,¥! *'5!"¢2#$¦ ,¦¨¥252¢K0¦33¨6/,058¨¦ c+ÂG? , ,¥,+ ( 58( 4=?¦2 : */3(* ,¥4 ,'¢3¨" *C0¦3¨2¨58 :¥>#$B : 7 -*0'¥2¢3 )/ Q" 3¨¢<" ¨ ,¥j0¢#$¢ *//,' Q" 3¨¢#Af52,¥2589 " 58¨ :0¦3;"3¨0'/,, :¢ 5X¦#:T¨3¨ "¦ 52¥X52J,6(*/K58*X T 0 Q¨/ *;" (2"'¥2,¥,*0¦ *D¢ ¢0'52,¥ 058¨;/6e58*0'5"¢2#$¦ :¥ 6( b-!¦#;T¨¢3¨Y"¦ 52¥!¢^ ,/(*52,Z=?3¨I¥25833;¥8( ""W58 y¢#9 3¨T!¥83¨¦ 583¨T!-,5252¢ 58*0¦ !- T652,/,6 ; 52¢2"52058¨ Sst,v8+ #$,/58¨:h( 0¥89$" ,, Q" 58¨D58,0'K¥2/2*,6( 3 * + ¥8 !0!58¨ 1¢29 ¶ 52¢22( "*5e :,/2*0¦ ¨¥2 D0 ! 5222(" 54*0¦ *63¨¢e"¢2¨66¨/,033gTJ¥252¥ G?* /, @"3¨¢@s¨²,°¦v*580¦ *¥83¨0'52,¥?- T652,/,6 ,¥ 52 à ¢¨f£@©¨g ¡ 0;-¨5> k033f58( 03c" 6/,,¥2¥2¦¥,+ *¢ k0Q2( *C58 ,0C *^ 5 ] 0 ; 52¢ 1,U¨0'52¢" ,¥2¢ 520'58¨ fU( "¦ :=? ¨/ ;¨5"¢2#$¦ :¥ ,0'/ ,¥40CT¨¢3¨X"¦ 5,c0C/2*,/2 X¦#j58*;- ¨54=?33<,¥8( 3¨54 I0\/033 0J¦0¦2¨,58TL#e¦"*58¨ Q¨F058¨ ¥¦+YG?*D/, Q" 3¨¢D(*¥2,¥@3 *,0¦ 52I58*X¥2/2*U( 3¨¢¦+RU/,58¨ S°KU¨¥2/(*¥2¥2,¥C*¦= =?D¢^6" 3¨¨5!58 ¨¥ ¥2/,0 I,¦¨¥252¢:0¦33¨6/,058¨¦ is °'¯vE0 L C/¢¨¢ 5@0 K¢~/,58¨ :,/2 0 ¨¥2 X58 Q/(2¢ 5>'¢¥8¨ I¦#j( ;¥2T6¥252, !+ ,¨¥252@033¨6/,0'52¦+ ¦@58¨¥4" 0"¦<=?@( "L58 Q/ Q9 7 "3¨¢¦ ¥e" 58¨ Q¨F,058¨¦ *¥; 52C¥2,03c3¨¢3¨¥ O4¥e¥8*¦=? I ¨( !²f0 03¨0¦"6N X/, Q" 3¨¢C/0 I-b ' m, 7 M /, ¥8¨¥252¥@ :0 3¨TJ¦#?0D¥2,54¦#?¦"*58¨ @¨F,058¨¦ *¥ Z58!=?0¦T6¥,+ ¥25,B=?*¢ 58*D¢^ ,/¢( 58 *a/,6!0/2*,¥10 7 ',©<¬ "¢2#A :,X¦ 9E58 ¢9$x*TDU( 2 X58*;580¦ *¥83¨0'58¨ K#' F¢G? K/,' Q"3¨J"2#$ :¥!-W58[( *¦(*0¦o 3 p#:© 03 - T652,/,6 ,¥e52Q58 4 52¢ :,6¨052@¢"¥2¢ 52058¨¦ c+BO4¥ 0 C¥252058¨/e :,58 6¥?0¦ *C¦(*0¦,: 3 ¨ \¦# *¦ 9$© *0¦3c58( 03 58 ,¥2:" 58¨ Q¨F,0'58¨ ¥Q,6(*/:58*1¥8¨F,:#B58 :¢ ¢29 :,58 6 ¥,+@A a0 U¨58¨¦ cq58*:/ Q" 3¨¢1¢^6"3¨¦¨52¥BL$"¢^6¨¥252¢ /,M 052!$¾;U"W¢2#$ @ *C58 , µ52¢ ¥)52;,6(*/4¦¢0¦33 52L¥20#$3¨Td"¢2#A ( *¦(*0¦ 3 ¨ o¦#@¥2 :X 6/,0'58¨ ¥ /,' Q"3¨0'58¨ 58¨ :ys °6¼,v8+n¿(2 583¨T;58 J/,' Q" 3¨¢ #> 9$© 03e58( 03e :,58 6¥N h(2 K¥2520/2 I#0 : $©O*§ ,=?2¨58 \¦ X ¦03¨ 058g Ys t³¦v8+ "¢2#A :¥D58*X#$33¨¦=? Y" 58¨ Q¨F,058¨¦ *¥aU( 2 *S¾ Machine Executing Code Lazy Compilation Profiling Data Code Stub Invoked Unresolved Resolution Reference Adaptive Compilers Optimization Dynamic [Base,Opt,...] System Linker Compile Class Load Request Class Init ClassLoader (Re)Compilation Plan (!%D B¥ 7 #%$'&()§*+(,#.-B/"£ -2 ;(#¥/ ()-'*¢12¢¡¥&@¤£-2#¥¡§¦¥¨ ( ,¥23¨',K¢#$¢¢ /,/0( ¥8 *X0: ,=[/¢3¨0'¥2¥Q52:-;3¨0',<58 3.1 Runtime Measurements Subsystem /3¨0¥2¥<3¨0 ¢< ' 6¥0e/, Q" 3¨¢B52>/, Q" 3¨>58*B/¢3¨0¥2¥c ¨58¨03¨¨F,¢ G?*@2( 58¨ :C :0¥8( , :¢ 52¥@¥8(- ¥2T6¥252, Â0'58*¥4 #$¦ :058¨¦ |#q ;¢^6¨¥252¥}¢+jG?*e/¢3¨0¥2¥>3¨0 ¢e03¨¥2@ ¨58¨0¦3F,¥;58*e/, Q" 3¨, 0-W( 5458 Q¢^ /¢(*58 ! 1,58*6 ¥,f¥8(* : 102¨F,,¥;58 4 #$ :0'58¨ f /64#$¦?0¦33< :58*6 ¥>52Q0 +fG` 4¥2/, 0 X58 ¢ X¢¨58 ¢e"*0'¥2¥2,¥458 Q¥8( : :0¦TC03¨ !52158*;/,¦ 5833¨¢ ©¨¢¢¨¥@£>¨©¨¢6$:¦A§ / Q" 3¨058¨¦ X¥2/,¢ 02¨@6/,/¢( ¥<=?* *,'¢B58*?^ ,/¢( 58 *@/,6 ?0589 ¨0C58*@'0 ¨F,¢@,'¢ 54h( ¢( Q¦>,/, ¥458 ; #$¦ :058¨¦ J 52 Q"*52¥>52Q ' mQ0@ :,58 6X58*0'5 0¥) 5BT,5?-, X/,' Q"3¨+ 58 ;O4P;RC0'520- 0¥2+ * L58¨¥4 0" "¢ ¥,<58 Q3¨0FTX/, Q" 3¨058¨¦ Y¥258( -J¨¥;^ ,/¢( 52, ] =? ¨/ D3¨,0 ¥>52Q58 4/ Q" 3¨058¨¦ K¦#<58 4 :,58 6+>A D58 ,¥2)© ¥25 ¨( Dt:¥8*¦=>¥;58*1¥2582(*/,58( :¦#?58 b2( 58¨ :C :,0'¥8( :¢ 52¥ 7 5E=?C¥2/,¢ 02¨'¥,<58*@0" " 3¨/,058¨¦ Y58 ,0X58 05;/,0¦(*¥2J58 Q/ Q9 ¥8( -*¥2T6¥252, D+pRU¢0¦3;¥2T6¥252, :¥,j */3(*6 d ¥2582( :¢ 52058¨¦ o " 3¨¢@52Q-W4 m,I=`33q¥252033<( 583 58 J¢^ /¢(*58 Y/,6 4 0 =?0X"¢2#A :0¦ */,a : ¨52¥,;0¦ * { ¥2582(* : 52058¨ f*" 6U( /,40¦=d" © 3 *C 0520@0¥j58*>"¦9 z K58 C58a¥2/,¢ 02¨j=? ¨/ K¨¥;58 :#$6/¢( ¥;#>58 ¨¥;"*0¦"¢¦<58 0' 2( *¥,+ ¥8( 033¨T<58 ,¥2C¥2T6¥252, :¥4"W¢2#$ V 3¨TJ¢^ 58 :¢3¨T ¶ 0'0¦"*58¨'X" 58¨ Q¨F,0'58¨ ¥2T6¥252, /,0¦ L mX0J/ Q" 3¨¢D=?*¢ 3¨ Q¨52,:" 6/,,¥2¥8 Q¦#*58 0¦=L0'52040'¥c¨5c¨¥c"66(*/,+`A ¥252,0 " © 3 J 0520C¥8( ¥252¥;58*0'5 0C :,58 6J=?¨58I0'U9 ¥2¢" 00'52\58 ,0'¥@/,033¨ "¢2¨66¨/,03¨3¨TK"6/,¥2¥Q0¦ * 2£)¨©g ¡ A¡6¢*©¨¦¦ 6¨58¨ 03B" 58¨ Q¨F,0'58¨ ¥Q 10T:-;-¢ ¢© /¢¨03$+ 0 03¨T6F\58 ;0=0'520+;G? Q ,¥8¨ ¥2¢"*0¦052,¥;58 @¢ ¢058¨¦ #;0¦= " © 3 Y0'520 #g H58 J 0520L0 03¨T6¥8¨¥X#$¦!5E=?J,0¦9 G? 0¦3¨0"6N { -,¦ *¥e¢^ ,/¢( 58¨ D- Tº06 *Q#g µ0 ¥2 ¥,+ ¥25, 58¨¥? ,¥8¨¦ !0¦33¨¦=)¥> ;(3¨58" 3¨;'0 ¨F,¢¥>524" 6/,,¥2¥ M M6z 7 6 © 3¨ =?¨/2X/,¦ 520 ¥458 4/,¦4¥2¢¨/,¥># 0¦3¨0"6N *Q" ¢9 M 58 Q¥20' :b0¦=p0'520*"'¥2¥8-3¨TX aU~¢ 5;=?0¦T6¥,+eRU/, 58 ¨¥ g£:¢¦¡6 / Q" 3¨,[52K 10/2 K/,6 Ks ³¦v8+ 03¨0¦"6N d¥8( " "52¥X¥2,'¢03 M ¥2¢" 00'58¨ Y0¦33¨¦=)¥@3¨=?9$3¨,'¢3?" © 3 *K/6C52X¢^ ,/(*52:( * ¢ / ©*¦(0'58¨ ¥Q¦#<58 L8/,¦M+jG?*;¥8¨ @"3¨,¥25e/, © ( 058¨ a 9 ¥2582¨/,5>,¥2( /,@/, ¥2580 52¥,+e¾>,/,033j58 05>=?; 1 ¨52; 5f§ ( ¥25 /3(* ,¥:0D/¢3¨0¥2¥;3¨0'¢¦j0¦ K¦-6§,/,5@033¨6/,0'52¦j0 K58 Q-*0'¥2¢3 0" " 3¨/,058¨¦ [/,6 j-( 5:03¨¥2a¥2T6¥252, ¥2¢¨/,¥C#;58 {K+jR6 z / Q" 3¨¢¦+XG? ¨¥Q'¢¥8¨ L3¨0'¥10 K/, @"3¨,¥D|$=`¨58 58*:- 0¥2¢9 #$¦;¢^ 0' Q"3¨'3¨¦=?9$3¨,¢3B/,6 :58 054 1 ¨52¥@58* { :, :¦T z 3 :/,' Q" 3¨¢}4033f *¦ 9E/,¦Q/¢3¨0'¥2¥2,¥,* /¢3(*6¨ *X58 ;" 58¨ Q¨F¢ 033¨6/052I ;( ¥25\ 5C033¨6/,0'52K0 TZ-m§¢,/52¥J|¨5C b( ¥25\( ¥2!" ¢9 / Q" 3¨¢¦;=? ¢ Y58 { -6'52¥,+ ¦:-,5252¢D"¢2#$¦ :0 /, 033¨6/052,K 0520C¥2582( /,58( ,¥;0 !-( ~¢¥}40¦ *X¥8 ( 3¨K/,' Q" 3¨,52 M6z 7 0 /¢3( ,¥@58 :" 58¨ Q¨F¢ J/ Q" 3¨¢@ K58 ¨52¥4520'¥8 C I0:¥8*¦5>58¨ :b"W¢2¨6+ ¢§ ©©q¢ ©q¡m§ 2¢6$ " ,/,' Q" 3¨,K-654¨ :0'+@¾>,¥8( 3¨52¥b a58 ¨¥4"*0¦"¢@(*¥2@58*@#(33 / ©*¦(0'58¨ fc=? ¨/ C /¢,0¥2¥)-6'589¨ 10;=?2¨58 C58¨ :6-( 5 G?*C/,¦ 5833¨¢ºU,/52¥:58*C 0520X :¦ ¨52¦2 *a0 K/¢,0'52,¥Q¦29 " 66(*/,¥;0Q¨¦*4"¢2#A :0¦ */, {K+ 0¦ ¨F¢@580 ¥452:"6/,¥2¥;58*40¦=[ 0520C0'5)¥8"W,/¢© /:58¨ :Q 9 M6z 52¢¦03¨¥,+ ¢ S0=B 6 cB,0/2Z0¦ ¨F¢X0¦ *0¦3¨T6F,,¥:0¦= 0'520 ] 0 \" 0/2 '0',¥>58*; 0520Q 5210Q¥8( ¨520- 3¨Q#$¦ »#$¦>/, ¥8( Q"*58¨¦ - TK58 !/,¦ 5833¨¢¦+ZO4 6¨58¨ 033gT40¦ Z0¦ ¨F¢D :0¦TK0 d 9 3. SYSTEM ARCHITECTURE #$¦ :058¨¦ I52:58*;¦0¦ ¨F,;,'¢ 5>h(*¢( ;#$>58 ;/,¦ 5833¨¢@52 G? 03¨0¦"6N yO4 0" 58¨aP)" 58¨ Q¨F,058¨¦ R6T6¥252, |$OeP;R}:/,¦ 9 M " 6/,,¥2¥, > 10T@,/,: #$ 1058¨ D X58 >O4P;R: 0520¦-*0'¥2)#$¦ 520¦ *¥@58 ,:/,' Q" ¢ 52¥,<0/2L#B=?¨/2L¢ /, @"*0'¥2¥2,¥Q¦ *1 3¨052;h( ¢2¨,¥)- TC'58*¢ OeP;R\/,' Q" ¢ 52¥,+ 1K¥2¢" 00'52L58,0'¥X¦#C/,¦ 583$+¸G? ,¥2K¥8( -*¥2T6¥252 :¥J0¦ 58 <58 0¦ * G?¨¥f0/2¨52/,58(>/,0¦ @¥8(" "¦5<0?¦02¨,5ET;# :,0¥8( , : 5c52,/29 §£1!£1¢¢¦§r,£:,¦:¦§*,¦¥¦$£ ¢r©©¨, 58 + ¨( LtK ¢"¨/52¥J58 J 52¢29 7 ¨h(*,¥,6 /¢3( U @*0¦=?0¦?"¢2#$¦ :0 /,4 1 ¨52¥, /,033W¥2520/2 r¢£)¨g©¨¢6AAd¦§ ¦¥¦$,£ 03q¥2582(*/58(@#j58 0¦3¨0"6N *D0 0" 58¨:¦"*58¨ Q¨F058¨ ¥2T6¥252, M ¥20 @"3 :s °'um´vE¦0 ;/, @"3¨¢29$ ¥2,52,: *¥2582( :¢ 520'58¨ D¥8(*/2 0¦ *L58 \ 52¢0'/,58¨ ¥\-W,58=?¢ L¨52¥:/, @" ¢ 52¥,+ZA Z0'6¨58¨ 0¥c '6/,058¨¦ X/,¦( 52¥,-*0'¥8¨/)- 3¨6/ 1, ><" 0581"¦©3¨,¥es.²¯vE 52158*e/, Q"W ¢ 52¥,58* "¦¨ ,¥;0Q¢"W¥8¨52T 0 X¦03( b" © 3¨,¥@s.²¼vE+ :jI 6¢6¢6¢¦ 58 05j,/, ¥?/,' Q"¦ *¢ 5> ,/¢¨¥8¨¦ *¥e0 \0¦33¨¦=)¥B/, Q"W ¢ 52¥>52 h( ¢TL58 ,¥2! ,/¢¨¥8¨¦ *¥,+ZG?*: ¢^ 5Q#$¦(C¥2/,58¨ ¥CU¨¥2/¢( ¥2¥C58¨¥ © ( ; I :; ,5203$+ Executing Compilers [Base,Opt,...] Code Install New Code Profile Information Hardware / VM Instrumented/ Instrumentation/ Performance Monitor Optimized Compilation Code Plan Raw Raw Raw Data Data Data AOS Compilation Database Threads Organizer Organizer Runtime Measurements Subsystem Formatted Formatted Data Data Compilation Queue Organizer Event Queue Controller Adaptive Optimization System (,!.D + 6 "£1(*£"£*¢D #¢¡ *¢12¢¡¥&@¤£-2#'¤£&2*¢(¥¦¥&2*¢()$'(¨§£ *¢(#%- 3 ©%/* $ 3.2 Controller 3.3 Recompilation Subsystem G? Q/ 5833¨:¦/ ,¥258052¥Q0¦ *X/,¦ *6( /,52¥Q58 @58 ¢@/, @"9 G?*<,/,' Q" 3¨058¨ D¥8( -*¥2T6¥252 [/, ¥8¨¥252¥<# / Q" 3¨058¨¦ !58 ,0'¥ ¢ 52¥:¦#e58*D0 0" 58¨X" 58¨ Q¨F,0'58¨ p¥2T6¥252, D+K$5Q/66 *0'52,¥ 58 05 ' 6;/ Q" 3¨¢¥,+?G? 4/,' Q" 3¨058¨ I58 ,0'¥>¢^ 580'/,50¦ * 58 C0/,58¨¨58¨¥:#e58 Q2( 58¨ 1! :,0'¥8( :¢ 52¥@¥8(- ¥2T6¥252, 0¦ * ¢^ ,/(*52X/,' Q" 3¨058¨ p" 3¨0 ¥\58 0510\ ¥2¢52,L 52K58 !/,' Q9 58 J,/ Q" 3¨058¨¦ µ¥8( - ¥2T6¥252, !+ G?*I/, 58¦33¨¢I ¨58¨0'52,¥K033 " 3¨058¨ h( ¢(*C- TK58 !/,¦ 5833¨¢¦+Y¾>,/ Q" 3¨058¨¦ [6/,/(¥Q 2( 58¨ :; :0¥8( , :¢ 5?¥8( - ¥2T6¥252, »" © 3 *C0'/,58¨¨58T:- T: ,52¢29 ¥2¢" 00'52:580 ¥4# 58*10" "3¨/,0'58¨ fj0 J586( ¥,c/0 a6/,/¢( @ !=? 05?"¦©3 !¥8 ( 3¨X6/,/¢( ¦*( * ¢e=?*0'5)/ U¨58¨¦ *¥, K" 00¦33¨¢3$+IG` ¨¥@U~¥Q# V58*: ¨58¨03@|3¨0F,T };/,' Q"3¨0'58¨ 0¦ *!#A4 ¦= 3¨¦ * +;$5?,/,¢¨',¥4 #A :0'58¨ I# 58 b2( 58¨ : #@0I :,58 64=? ¨/ S6/,/¢( ¥!58 !©¥25C58¨ :X0K 1,58*6L¨¥\ 9 1,0¥8( , :¢ 51¥8(- ¥2T6¥252, 0¦ *LOeP;RJ 0520¦-*0'¥2j0 ( ¥2,¥@58¨¥ ¦ 6, 6(2 J3¨0FTK/, @"3¨0'58¨ f>/, Q" 3¨058¨¦ p6/,/¢( ¥Q Z58* #$¦ :058¨¦ y52C :0¦ 6:/ Q" 3¨058¨¦ Y ,/¢¨¥8¨ ¥,+C$54"*0'¥2¥2,¥;58 ,¥2 0" " 3¨/,058¨¦ I58,0'C58*0'5<05252, Q" 52,C52) ' m458 `( /, Q" 3¨, / Q" 3¨058¨¦ i/¢¨¥8¨ ¥J52a58*!,/ Q" 3¨058¨¦ i¥8(- ¥2T6¥252, ! U9 :,58 6+ /,58 *C58 ;0/,58¨¦ *¥;¦#<58 Q¦0¦2¨( ¥4/,' Q"3¨¥,+ Kj0/2i/, @"3¨0'58¨ µ" 3¨0 l/, ¥8¨¥252¥J¦#C58 ,K/,' Q" ¢ 52¥ 0 B0¥2,X¦ X #$¦ :058¨¦ J#g 58 42( 58¨ :1 :,0¥8( , : 52¥4¥8( -9 ?0 Y0 ¢¨f£@©¨¢6$X¨©¨¢ ¨2 ©©U¡J 6¢6$¢ g*¦,§£1,$¢6$ ¥2T6¥252 0 K58 CO4P;RI0'520- 0¥2B58*C/,¦ 5833¨¢D/,0¦ K"¢2#$¦ +:G? C" 58¨ Q¨F,058¨¦ Y"3¨0¦ Z¥8",/¢© ,¥:=? ¨/ Z" 58¨ Q¨F,0'58¨ ¥ ¨©¨¢ 58 <#$33¨¦=? *;0'/,58¨ ¥ ²}W¨5c/0 ; ¥2582(*/,5<58 <2( 58¨ :B :,0¥8( ¢9 58 \/ Q" 3¨¢C¥8 ( 3¨L0" "3¨TK6( 2 *X,/,' Q"3¨0'58¨ <+IG? Q"¦9 1¢ 52¥<¥8(- ¥2T6¥252, 524/,¦ 58 6(*>j/2 0 ?¨52¥Á" © 3 Q¥2580'52,T © 3 *D0'520* ¨58¨033gTJ'058 ¢,!- T!58 ;2( 58¨ :@ :,0'¥8( :¢ 52¥ =? ¨/ 1/,¦(3¨; */3(* ?(*¥8 ;58*<,/,' Q" 3¨058¨ D¥8( -*¥2T6¥252 [52? 9 ¥8( -*¥2T6¥252, D6,/,52¥<58 ¦"*58¨ @¨F¢ *@/,' Q"3¨¢¦ ¥c#$,U- 0/2 69EU/,52, ¥25 582( ¥8¨?"¦©3 §¤Wt}*¨5c/,0¦ Q,/ Q" 3¨> ¦< :¦ :589 " 58¨ Q¨F,0'58¨ ¥,+C *¥2582( :¢ 520'58¨ I"3¨0¦ *¥@U¨/52052:=? ¨/ f*#?0¦ T 6 ¥)( ¥8 º" © 3 X0'520\52@¨ Q"¦'Q58 ¢4"W¢2#$ 10 /,+?G? 582( ¥8¨) ¥2582( :¢ 52058¨¦ D58*?/ Q" 3¨¢B¥8*¦(3¨: ¥2¢5c 52;58* / 5833¨; :0¦ 6,¥?58 ,¥2e,/¨¥8¨ ¥)- 0¥2,C D0¦ !0¦ *0¦3¨T658¨/Q 16¢3 *¢0'52,X/,6 + ",¥2 58 *;58 /¥252¥<0 4-¢ ¢© 52¥<# "¢2#$¦ Q ;58*,¥2j520¥8 ¥,+ G?*B/, Q" 3¨058¨¦ I580 ¥520¦ 6,¥j58*>¦(*58" (*5j#W58*>/,' Q"3¨ G? / 5833¨?/,' : ;( ¨/,052¥=?¨58@58 '58*¢q58=?>/,' Q"¦ *¢ 52¥ 0 0¦¦0Q¦-m§¢,/,5>58 05?¢" ,¥2¢ 52¥>58*;^ ,/¢( 520- 3¨Q/,6 @0 !0¥2¥2¦9 M ( ¥8 !"2¨¦2¨58TIh(*¢( ,¥¤¨54¢^ 580'/,52¥; :,0'¥8( :¢ 5;,'¢ 52¥)#' /¢¨0'52,Q2( 58¨ : #$ :0'58¨ X|$^ /,¢" 58¨ D520- 3¨ #$ :0'58¨ C0¦ * 0Ch( ¢( Q58 05>¨¥)© 33¨,¹- TD58*;2( 58¨ :: :,0'¥8( :¢ 52¥4¥8( - ¥2T6¥89 0¦2-*0'C/,¦33¨,/,58¨ S :0" ¥} 0 J ¥252033¨¥Q¨5; L58 {K¥2 M6z 52 0 K *¥252¥º/, Q" 3¨058¨¦ [ ,/¢¨¥8¨¦ *¥! 52I0Ih(*¢( X58 05 58 05?0¦33#g(*58( 4/,0¦33¨¥>52Q58 ¨¥> :,58 6\=?33( ¥2458 ) ,=Y¢¥8¨¦ c+ / Q" 3¨058¨¦ K58 ,0 ¥" 6/,,¥2¥,+ ¢ k58*,¥2>h( ¢( ,¥>0>, Q" 58T A a( @/¢( 2¢ 54¨ Q" 3¨, :¢ 520'58¨ f?0¦ T!",¨¦(*¥@0/58¨0'58¨ ¥:# ] 58 : ,h( ¢( X58 ,0|$¥}4¥83¨,¢"f+@G` @0¦2¨( ¥Q¥2T6¥252 ¸/, @"9 58 \ 1,58*6a=`33`/, 58 6( !52C(*¥2C58 :3¨L/,' Q"3¨d/6:#$¦ ¢ 52¥C03¨¥2a/, : ;( ¨/,0'52! *6,/,583¨Ty- TK,0'U K0¦ *Z=`2¨58 58 ) 1,58*6@( 58358 05< 1,58*6%¦ ¥0'/,58¨¦058¨ k/, @"3¨,52¥,+e58 9 #$¦ :058¨¦ J I58 ;OeP;R\ 0520- 0¥2'+ ¹ Z( 1,¥8¨¦ y" ,/¢3( ¥º( ¥8 J¥2520'/ K#g0 ::,=?2¨58 J52 *0¦-3¨X"¨( ¥\0'/,58¨¦058¨¦ *¥X¦#458 ! 1,58*6Z52¹( ¥2!58 \ ,= G?*I/,' Q"3¨0'58¨ i58 ,0'o¢^ 580'/,52¥\" 3¨0 ¥!#' 58 X/, @"3¨0¦9 / Q" 3¨,!'¢¥8¨ f- (*5j58 ¨¥Á#( /,58¨ 03¨5ET\ 0¥c 5jT,5c-¢ :¨ Q9 58¨ Zh( ¢( \0¦ *I m,¥:58 C" 58¨ Q¨F¢ d/ Q" 3¨¢:" 0¥2¥8 ¹ " 3¨, : 52,+ e¢^6",/5?58*0'5 03¨0¦"6N :=?33f,¢ 58( 033¨TC,=?2¨52 58 \/ Q" 3¨058¨¦ Y"3¨0¦ c+XG? C/, Q" 3¨058¨¦ p580K,/,¦¥@58* ] M - 0¥23 *@¥2520/2 C#0 :¥?52Q¦"*58¨ @¨F,,X¥2520/2 :#0' :,¥,+B5<¨¥>0¥?T',5 /,' Q"3¨0'58¨ 58¨ :J#AX58 J,/ Q" 3¨,i :,58 6 58 JOeP;R ( /¢3¨,0e#j58*4¨¥)¥8( C/¢¨ 54 :'58¨0'58¨ a52:¥8( ""¦5>58*; :¦ 0520- 0¥2C52C033¨¦=i#$ ::0'/,/¢( 052: 16¢3 I#j#(*58( ;¢9 6 C/¢( 3¨5;580 ¥8¨58¨ I-,5E=?,¢ k58=?1" 58¨ Q¨F,,I¥2520/2 C#0 :¥,+ /,' Q"3¨0'58¨ L ,/¢¨¥8¨¦ *¥,+ 4.2 Sampling 3.4 AOS Database G?*X¥20' Q" 3 *L¨ Q"3¨ :¢ 52058¨¦ i520 m,¥C0 ¦0 520'J¦#;¢^6¨¥258 G? !OeP;RJ 0520¦-*0'¥2!"¦¨ ,¥C0¹¢"W¥8¨52TL=? ¢!58 !0'0¦"9 :,/2 0 ¨¥2 :¥ C58 03¨0¦"6N {K+'?¢#$¦?¥2=?¨52/ Q58 ,0 ¥, M M6z 58¨'?" 58¨ Q¨F,0'58¨ D¥2T6¥252, Y,/,¦¥f,/¨¥8¨ ¥,¢ 52¥,'0 ;¥252058¨/ 0>/,( 52¢q0¥2¥26/¢¨0'52,:=?¨58@58*j/¢( 2¢ 5c 1,58*6;¨¥ /¢, 1¢ 52,+ 0¦ *0¦3¨T6¥8¨¥:,¥8(3¨52¥,+IG? \¦0¦2¨( ¥:0 0" 58¨X¥2T6¥252, Â/,' Q"¦ *¢ 52¥ G?*e¥2T6¥252, µ0'52582-( 52,¥>0;¥20 @"3¨;520¦ 6¢ D D0;-*0'/ º,'452@58* h( ¢TD58*,¥2;0¦58#$0/52¥40¥? ,, ,+ /¢( 2¢ 5: :58*6+IO ¥20 Q" 3¨!520¦ 6¢ L Z0X :,58 6K"¦3¨( X¨¥ /¢,6¨52,I52Q-'58K58 Q/033 X0 X/¢(2 54 :,58 6/,0" 58(2 j¢^ 0' Q"3¨'58 >/, 58¦33¨¢?( ¥2,¥j58*>OeP;Rb 0520¦-*0'¥2>524,/, 7 58 !#$0/,5C58 05D/, 58¦34¨¥\ p580¦ *¥8¨58¨¦ o-W,58=?¢ y-'58p :,58 9 / Q" 3¨058¨¦ »" 3¨0 ¥X0 p52d580'/ S58*I¥252058( ¥!0¦ *y ¨¥252TY¦# 6 ¥,+ ?*0¦')^6"¢2¨ :¢ 52!=?¨58C58 ¢B¥20 Q" 3 :052582- (*58¨¦ ] 1,58*6 ¥!¥23¨,/,52,y#$¦:,/,' Q" 3¨058¨ f+iO4¥C0¦ *'58*¢D¢^ 0' Q" 3¨ ¥258052¨,¥>0 :*0¦')#$¦( C58¨¥> 4524-W4 :'¥25¢~W,/,58¨'+?G?* 58 L/, @"3¨0'58¨ 58 ,0 ¥J,/,¦[¥252058¨/Z0 03¨T6¥8¨¥L0 [ 3 9 0//¢(0'/,TX#j58 ¨¥4¥20' Q" 3 *X52,/2 ¨h( :¨¥) ¥258¨052J I : I¥8(* : 102¨,¥:" 6U( /,,K- TK58 C" 58¨ Q¨F¢ d/ Q" 3¨¢¦+KG? ,5203< Ls uvE+ / 5833¨!0¦ *L¦0 ¨F,¢D58 ,0 ¥:h( ¢TK58 ¨¥Q #$ :0'58¨ S0¥ ,, ,Y52I( ¨X,/,' Q" 3¨058¨ l,/¨¥8¨ ¥,+[{XX ,520¦3¨¥! G?¨¥e¥20 Q" 3 X52,/ ¨h(*Q" ¦¨¥Q0Q- 0¥8¨/1 :,/2*0¦ ¨¥2 ¸521,¥89 58 ;/¢( 2¢ 5)¨ @"3¨, 1¢ 52058¨¦ L0" ",0¦4 aR6,/,58¨ a¼6+ 58¨ :0'52:58*@58¨ ::¥8"W¢ 54 K^ ,/¢( 58¨ L¦#?,0'/ a :,58 6+: I58* 0 0" 58¨I" 58¨ Q¨F,0'58¨ ¥2T6¥252, !B58=?X¦0 ¨F,¢k580 ¥Q"¢29 4. MULTI-LEVEL RECOMPILATION 66¨/,033¨TX"6/,¥2¥458 40¦=o 0520 + G? ¨¥:¥2,/,58¨¦ Y ,¥2/¢2-¥\58 :¨ Q" 3¨, :¢ 520'58¨ #e58*C0'0¦"*58¨' G?*@©¥25;¦0 ¨F,¢º58,0'y|$58 }¢/¢9 /, Q" 3¨058¨¦ Y¥2T6¥252, D+@RU/,58¨ Z¼C¥2/¢2-,¥;*¦=i58 ¨¥;¥2T6¥252, O*6£1©O*¦ X$¡6¢* ¨, 052XU( 2 *X¥2T6¥252 ¥2520¦58("f* *¥2520¦33¨¥:0C¥20 Q" 3 X-m§¢,/,5@|$58* ¨¥I¢^ 52¢ ,i52Y¥8(" "5a( J© ¥25X 3 *y#A,,6-*0'/ 69E6,/,52, }c52b,/:0¦=Y0'520b,'06 *C58 4¢^ /¢(*58¨¦ ¦"*58¨ @¨F,058¨¦ cD0 0" 58¨y 3 W+ÄR6,/,58¨¦ °+¨²J" ¨ ,¥L0 £1©O*¦ ;©¦,$,, " © 3¨+ (2 C0;58,0'!¥2=?¨52/2c 58 { m,¥458 ¢¡¤£¦¥¦§©¨¦ · z ¦'¢¨,=¸¦#;58 \¨ Q" 3¨, :¢ 520'58¨ <+lRU/,58¨ p° +t!"¦¨ ,¥! ¢9 :,58 6K¦#458 ¨¥;3¨¥252¢ *¦?=?¨/2K,/ ¥Q58 C/¢(2 583¨TK0/,58¨' 520¦3¨¥;/, /,¢2 \ =Y" © 3 *! #$ 1058¨ I¨¥4¦-*520¦ *+eR6,/¢9 :,58 6! X0@0=p 0520Q- (~W¢¦+?G? ¨¥40/58¨¨58T!/¥252¥4¦ 3¨TD0Q#$,= 58¨¦ I°+ ³:6¨¥2/¢(*¥2¥2¥;58*4,/ Q" 3¨058¨¦ L :6 ¢3$+ 0 6¨58¨ 03j/,T6/¢3¨¥)6( 2 *C,0'/ D58 ,0D¥2=`¨52/2f0¦ *D58*>"¢2#$¦29 :0¦ */,@¨ Q"*0'/,5@6,¥4 5e¥2520 K( 5)#g ¨¥2Q#g ¸¦ *Q2( 4.1 Overview 52X58 º ¢^ 5,+IO)#A52¢@/,33¨/,58 *L58 : 6(* ;-¢C¦#>¥20 @"3¨,¥C¥8"/¢9 © ,K- T¹¨52¥@/¢( 2¢ 5Q¥20' Q" 3¨\¥8¨Fj58*C :,58 6J3¨¥252¢ ¢C=B0 6¥ ¨¦(C³:" ¨ ,¥:0¦ I¦¢¨,=#B58*@¨ Q"3¨ :¢ 52058¨¦ c+CG? 7 / 5833¨>580Q¨¥ M6z h( ¢ 583¨TI/¢,0'52,¥Q58 ,0'¥;/,¦2,¥8"¦ *6 *a52\58 :'58*¢@¥8( - ¥2T6¥89 52 :¥ ¦0¦ ¨F,!58 ,0'¥C52X"¢2#$¦ ¥20 @"3¨¢9$- 0¥2,y2( 58¨ : ¢ k0=B 6 c 58 ) 5j :,58 6¥>'0 ¨F,¢e¥2/,0¦ *¥>58 ) 1,58*6 ] 1,0¥8( , :¢ 52¥;0¦ *I0C¥8 *¦3¨:/,' Q"3¨0'58¨ Z58 ,0 52:"¢2#$¦ /,¦( 52¢>0¦=Y 0520@52b¨ ¢ 58#$TD :,58 6¥>=?*458 ;0" "3¨/,0'58¨ /, Q" 3¨058¨¦ <+¸O>#$52¢k58*,¥2a58,0'¥X0¦J/,052,@58*I/,¦ 9 ¥8"¢ ¥< :¥25f# ¨52¥c58¨ :+qG` j0¦ ¨F¢? ,, 1¥c0> :,58 6Q52?- 58¦33¨¢e¥83¨,¢" ¥?( 583q58*>2( 58¨ :; 1,0¥8( , :¢ 52¥>¥8( -*¥2T6¥252 µ 9 L 5 M>#58 "¢/, 520B# ¥20 Q" 3¨,¥j052582- (*52,152458 05c 1,58*6 ¢^ /,,¥C0K/ 5833¨2986,/,52[58¥8*¦3¨Y0 y58 X :,58 6y¨¥ ¥252¥)0¦ I, 5` I58 ;'0 ¨F,¢ ,¢ 5eh(*(*+ 5!0¦3,0 TY/,' Q"3¨[05C58 J :0¦^6¨ b( ¦"*58¨ Q¨F058¨ i3¨,'¢3 G? :0 0" 58¨C¦"*58¨ Q¨F058¨ Z¥2T6¥252, |$=`¨58 ( 5@0 0" 58¨: 3 9 0¦¦03¨0- 3¨+ ¦<,0'/ @ 5< :,58 6Q¨5<6¨¥2/,¦¢¥,m58* 5< 1,58*6 ¥ 7 6}>/¢,0'52,¥45E=?:'0 ¨F,¢@58 ,0 ¥,0 '0 ¨F,¢k¢ *h( ¢( ,¥!0¦ Y,'¢ 5: Y58 !¦0 ¨F,¢k, 5\h( ¢( O*6<£:¦©O*¦ ¦;A¡U¢ ©¨, 0¦ *10 +G?*j*'5< :,58 6¥j'0 ¨F,¢?" 6/,,¥2¥2,¥ 58 05!/ 520 ¥I58*K 1,58*6Y0¦ *p58 J"¢/, 520a#1¥20 Q" 3¨,¥ 6¢¢¥e$¡6¢* ¨, 052582- ( 52,J52158*; :58*6+ 1,58*6Z¥20 Q" 3¨,¥C0 K *¥252¥º 51 :,58 6y,'¢ 52¥Q Z58*D29 '0 ¨F,¢C¢ 5;h( ¢( \52D033¨¦=µ58 :/,¦ 5833¨¢º52!/,¦ *¥8¨ ¢C58 1,58*6 ¥#$¦<,/,' Q"3¨0'58¨ <+ Kj0/2C,'¢ 5j/, 520¦ *¥>58 ? :,58 6 G?*>/,¦ 5833¨¢`T 0 Q¨/033gT\0',§2(*¥252¥?58 3¨¥252¢ ¢¢¦ ¥?¥20 @"3¨e¥8¨F, 0 ¨52¥!¢3¨0'58¨K 58 ,¥2¥,+ G` I,/0TY¦0¦ ¨F,I,/0T6¥ 0 @58*?¦0¦ ¨F,¢¦ ¥c 58 ,¥2¥j58,¥8 3¨152)0'0¦"*5j52>58*B/¢(2 5 · /( 52¢¥/ 520 ,: C58 2( 58¨ :> :,0¥8( , : 52¥¥8( -*¥2T6¥252 !+ -¢ 0¦¨D#e58 !0¦"" 3¨/,058¨¦ <+L?TK0',§2(*¥258 K58 !¥20 @"3¨D¥8¨F, R( / C/( 52¢¥Á /¢3( e58*? 5< :58*6:/( 52¢?0¦ *@58 )/( 9 =?¨58 Z¥8"/¢©*d-¦( ¥,B58*C/,¦ 5833¨¢D0'5252, Q" 52¥:52\,6( /, 52¥?0¥2¥26/¢¨0'52,X=?¨58X/,0¦33<¦0" X, ,¥>6¨¥2/¢( ¥2¥2,! IR6,/,58¨¦ a¼U+ 58 4¦¢2 ,0'!#f58 ) 5? 1,58*6 ¥>'0 ¨F,¢e=?*¢ D58 4¥2T6¥252, G? ? ,/,0¦TQ¦0¦ ¨F,? 6,¥c 5j/, : ;( ¨/,0'52>U,/583¨T:=?¨58:58 ¨¥? I0Q¥2520 T!¥252052@|$58*;¥25)¦#c 5> :,58 6 ¥`¨¥>¥2520¦-3¨¦}¢=? 3¨ / 5833¨¦+ ¥25833*- *;0¦-3¨>52)¥8" :h( ¨/ 63¨T:52e0" "3¨/058¨ !" 0¥2?¥8 #$52¥ | U¨/,0'52,X- T:/ 0 ¥) X58 4¥25?#f*'5) 1,58*6 ¥}¢+BRm¨ @3¨023gT ¿(2¢ 583¨T' 0¦3¨0"6N K(*¥2¥\0a¥8¨ Q"3¨I/,'0¥2¢9E0¦ * 3¨6/2 6 * 58 Q/,¦ 5833¨¢1 T *0' Q¨/,033¨Ta0§ (*¥252¥e58*; 58 ,¥2¥;58¥8*¦3¨J52 M ¥2/2 , :I52J/,¦ 583 0/,/,¥2¥!52K0J#A,= { ¥2¨/,,¥,+i y" 029 M6z 0" " ^6¨ 1052¢3¨TI/, 58¦3<58 4 6(* ;-¢ #f*'5) 1,58*6 ¥)"52, 58¨/(3¨0¦¦>0/,/,¥2¥8 *L/,¢520¦ Y/¢3¨0'¥2¥:3¨0 ¢D 0520I¥2582(*/,58( ,¥C58 05 - T!58 4 5> :,58 6¥e'0 ¨F,¢¦+ A#<0¦#$52¢e¥2,'¢03j¥20' Q"3 \"W¢9 0¦3¨0"6N * ¦ ¥X/,' Q" 3¨¢¥¹ ,,Y52K,0'YU( 2 Y/, Q" 3¨058¨¦ i¢9 M 2¨6 ¥, L$ *'5Q *¦(*¦¥M! 5@ :,58 6¥@0@-¢ ¹,58( 2 ,j58 ¢ h( ,¥j58*0'5<58* { :0'¥252¢<3¨6/ @- ¢3¨+jG` ¨¥c3¨6/2 6 *@¥2580589 M6z 58 \/ 5833¨!/0 Z/¢,0¥2D58*: 58 ,¥2¥:58 ,¥8 3¨+ZP) L58* T:"¢ 52¥e b( 3¨58"3¨1/, Q" 3¨058¨¦ K58 ,0'¥># i-¢ \~,/¢9 58 ¢; 0 # L8526C :0 T£MC*'54 :58*6 ¥;0Q-W¢ *C,58( 2 *, 58¨'*0¦ *X/0 X 5866(*/,;3¨6/2 X/,¦ 52¢ 58¨ I-,5E=?,¢ k58*;/,' Q" 9 3¨0'58¨ a580X0 !0¦"" 3¨/,0'58¨ L580 ¥,+ #$¦j¥2,¢0¦3*¥20' Q" 3 *;"¢2¨6 ¥, 58*¢ 158 ?/, 58¦33¨¢>/,0¦ Q /¢,0'¥2 Compilers Executing Install New Code [Base,Opt,...] Code Runtime Measurements Method Subsystem Instrumented/ Instrumentation/ Samples Optimized Compilation Code Plan Hot Methods Decay AOS Compilation Organizer Organizer Database Thread Organizer Event Queue Controller Compilation Queue Adaptive Optimization System (,!.D + ¢¡¢$ &, $? - * *¢(#%-'#¢¡ ¢£&2*¢(¥? £"£#%$'&() *¢(#%-'()- *¢12 ¡¥&@¤£-2#'¤£&2*¢(¥ ¥&2*¢()$'(¨§£§*+(,#.-'3 ©%/* $ 58 ;58 ,¥8*¦3¨+ *X58¨ :1#>0C,/, @"3¨,L'¢¥8¨ L¦#!§?¤$+ +¨¨5;/2 6¥2,¥@58* I58 05: Q ¨ Q¨F,¥X58*Dh(*0¦ 58¨58T +ZA# #"$ % "& '¨() OY¥2/, C0¦ ¨F¢¦ 58*> ,/,0¦T:'0 ¨F,¢¦6"¢2¨66¨/,0¦3.3¨TD,/0T6¥ 58 4/,¦ 5833¨¢e ,/¢¨ ,¥4524,/ Q" 3¨*§ 0'53¨,'¢3§¤m58 ¢=?¨¥24¨5 58 X :,58 6y/( 52¢¥,+Y?TL ,/,0¦T *L58 !/,¦( 52¥,458 !¥2T6¥89 ,/¢¨ ,¥;52b 5>,/,' Q"3¨'+ 52 ¨¥; :;=?¨ 5452@,/,¢ 5e¥20 Q" 3¨,¥4=? ¢ I ,52¢ Q * 1,58*6! 58 ,¥2¥,+ ¿3¨,023¨T'58 :#$0/52¥; y58 ¨¥: :6 ¢3B0:( 6 ¦=?0- 3¨! L"0'/¢9 58¨/,+ G` ;"6/,¥2¥;#B,¥258¨ :058 !#( 58(1/,¥252¥e0 ¹- *¢© 52¥;¨¥ 0 I"¢ L,¥20/2K"¦-3¨ !+XG?*1/¢(2 5Q/,¦ 5833¨¢ 4.3 Recompilation ¨ Q" 3¨, :¢ 520'58¨ Z¨¥b- 0¥2,a a58*:#$0¦23¨TJ¥8¨ Q" 3¨!¥258¨ :052,¥@ ¢9 ¨'¢ p0J 5D :,58 6d#' H58*X¦0 ¨F,¢I¢ 5Ch( ¢(*'458 £ ¥2/¢2-¹-3¨=;+ / 5833¨: ;(*¥25e/¢¨1=` ,58 ¢;¨5)¨¥4" © 520- 3¨:52:,/,' Q" 3¨ 58 ! 1,58*6L=?¨58Y0'6¨58¨ 03@¦"*58¨ @¨F,058¨¦ *¥,+YG? C/, 58¦33¨¢ ¥25,?58 !/ 5833¨!0'¥2¥8(* 1,¥C58*C"'0 =?334^ ,/¢( 52\#$¦ 7 ( ¥2,¥e0:/,¥2589$- *¢© 540¦ *0¦3¨T6¥8¨¥;52: :0¦ 6;58 ¨¥4/,0¦3¨/¢(3¨0'58¨ <+ 58=?¨/,!¨52¥C/¢( 2¢ 5:6( 058¨ f+RU ?#;58 X0" "3¨/058¨ *0'¥º2( #$¦@¼:¥2,/,¦ * ¥,<58 Q/,¦ 5833¨¢10¥2¥8( :,¥4¨5;=?33j2( I#$¦@¼: : B58¨¥?6¨¥2/¢( ¥2¥8¨ f*=?? 6( b-W¢?58 >" 58¨ Q¨F,0'58¨ X3¨,'¢3¨¥>0¦0¦39 7 ¥2,/,¦ * ¥¤#f¨5 0¥?2( C#$¦et4*¦(¥, 58 ¢ !¨5?=?332( !#$¦>t; : 0¦-3¨C52D58*:/ 5833¨:# V¯!52¥¤J+ ¦ @0! 1,58*6¨§ /(29 7 ( ¥,+ © 52@-Q58 4#( 58(@¢^6"/,52,!2( *D58¨ :;# · ,+ 583¨TK/, @"3¨,Z0543¨,'¢3 ©2<58 C/, 58¦33¨¢D,¥258¨ :052¥Q58 :#$39 58 4"'0 D+ 3¨¦=? !h( 0 58¨58¨,¥ G?*B¥2T6¥252, o 6¢"*¥<580'/ @¦#*=? ¢?58 ?0" " 3¨/,058¨¦ X¥8"¢ ¥58¨ : ¦58*B¢^6",/,52Q58¨ :j58 Á" ¦0 [=?33 ¥8"¢ @¢^ ,/¢( 58 * 0¥@¨5Q2( ¥,( ¥8 K58*D¥20 Q" 3 d52/ ¨h( ,¥D,¥2/2-,d" ,9 à :,58 6§I#§ ¨¥) 5?,/,' Q"3¨+ ( ¥83¨T+YG? !¥2T6¥252, ( ¥2,¥:0I=?¢¨¦ 52,Y0¦¢0'X¦#;58 ,¥2!¥20' Q9 " 3¨,¥452:¥258¨ :052@58*4"W¢/,¢ 520'@#<#( 58(;58¨ 1:|.-/;} I,0/2 58 ;/,'¥25?#f,/, @"3 X :,58 6§ 05?¦"*58¨ @¨F,058¨¦ à :,58 6c-*0¦22 *X,/,' Q" 3¨058¨ f+ ' ¸58 ¨¥b"/,¢ 520'C,¥2589 7 3¨,3 6#$©¤J+ :0'52\0¦ *a58*:#( 58(C58¨ :C,¥258¨ 1052j58 \/ 5833¨\" ,6¨/,52¥ 58 4#(*58( ;58¨ :@¥8"¢ 5> X,0'/ I :58*6+jG` 05?¨¥, *58 Q¢^6"W,/,52,X58¨ :@58 b" ¦0 =`33j¥8"W¢ *I¢^ ,/(*589 à *@ :,58 6§» D58 )#( 58('# §i¨¥,/,' Q"3¨X05<3¨,¢3 / - |2²} 0 +21 + ¦;¢^ 0' Q"3¨'c#>58 :=?¢¨¦ 52,J¥20' Q" 3¨,¥b 6¨/,052D58*0'5458 :0" 9 7 " 3¨/,058¨¦ p=`33`¥8"¢ y²,¯A¡ ¦#?¨52¥:58¨ :: L 1,58*6¨§H0 K58* ¥8 *;58 ,¥2>,¥258¨ :0'52,C¦03( ,¥, 58*?/ 5833¨?¨ 58©*,¥>58 ?¢9 ¶ /,6 4*0'¥2( !#$¦;²,¯@¥2,/,¦ * ¥,*58 4/,¦ 5833¨¢ =?33<,¥258¨ :0'52;58* / Q" 3¨058¨¦ K3¨,3@58 05? Q ¨ Q¨F,¥;58*;¢^6"W,/,52,C#(*58( 42( 9 #( 58(;^ ,/¢( 58¨ a58¨ :Q¦# §¸52@-:²;¥2,/,¦ *+ ¦ B58 ¨¥?U¨¥2/(*¥2¥8¨¦ c58 >/, Q" 3¨¢¥? D( ?/(2¢ 5<¨ Q" 3¨, :¢ 9 7 520'58¨ I|- 0¥2¢3 fP)" 5Á3¨,'¢3f¯ P)" 5<3¨,¢3j²' P)"*5<3¨,'¢3qt}<=?( 3¨ G?*e=?¢¨¦ 5?#f,0'/ D¥20 @"3¨;¥2520¦52¥?05j 40¦ *D,/0T6¥j"¢2¨669 10"! 52C58 ¨¥)#( /,58¨ a0¥?3¨,'¢3<¯ c²WtU ³+ /,0¦33¨T+?G?6( ¥,658*>¢^ /¢(*58¨¦ !-*0¦¨e¦#c58 ?,/,¢ 5<" 0¥25?¢^ 52¥ ,G?* :63L/, ¥8¨ ¢¥»,/ Q" 3¨058¨¦ _05p58*¥20 :i3¨,¢3 58 \ 1¥25; x (* */,D L58 C,¥258¨ :0'52,¥Q¦#>#(*58( :"'0' -W¢9 -W,/,0( ¥2d ,=¸" © 3 *o #$¦ :058¨¦ µ 10Tp¢ 0- 3¨y0'6¨58¨ 03 0¨¦¦+ ¢ a58*;/,¦ 5833¨¢;/, Q" 3¨,¥@ :,58 6¥,*¨5>0',§ ( ¥252¥ ] ¥8"W,,6(" ¥>'¢>58 )" ,¨( ¥4'¢¥8¨ k/, @"3¨,D053¨¢3 ©2+jG` ¨¥ 58 ¹#( 58( X,¥258¨ :052¥X52K0/,/( 5\#$¦!58 X *,= " 58¨ Q¨F,0'58¨ ¨¥>¢ /,6 ,\- TC0;#$,,6- 0/2 6986,/,52X" 58¨ Q¨F,058¨¦ J-W6¥25?#$0/52 58 05?¨¥>(*¥2,! k58*@/,0¦3¨/¢(3¨0'58¨ L¦# + 3¨,'¢3$0 X¢^6",/52,X¥8",,6( "IU( Q52@,/, @"3¨0'58¨ f+ G? ;¥2T6¥252, µ¥258¨ :052,¥e58*;~,/,58¨'¢ *¥2¥4#q,0/2X¦"*58¨ @¨F,058¨¦ K0¹© ^ ,L Q ¨ :03@¦0¦3(*+ K<~,/58¨¢3¨Te58 ¨¥º#A/,,¥; 3 ¨ * 3¨¢30'¥<04/,¦ *¥2520¦ 5Á- 0¥2\¦ : ) 1,0¥8( , :¢ 52¥,+jwf,5¢¡¤£)- 52;-4 :¦4/,¦ *¥20'58¨@U( 2 Q"'0' ¥252058( "c6- (*5>033¨¦=>¥ 58 >¥8",,6( "!¥258¨ :052?#$¦?/,6 >05c3¨,'¢3¤¥:/ Q" 0,15243¨,¢3W¯+ ¨5>52b-W,/, 1b" ¦,¥2¥8¨¢3¨TX 1;0',¥2¥8¨'Q0'¥?"¦©3 ! 0520 G? ¢ fU#f :58*6 §µ¨¥?05<3¨,3©2658 )#g(*58( 4¢^6"W,/,52,:2( * 0//¢(* ;( 3¨052,¥,+ 58¨ 1b#j=?>,/,' Q"3¨105?3¨,3 ;¨¥4¨'¢ X- T G?*;¥2/, !#( */,58¨¦ I#j58 ;0 0" 58¨Q 3 *X¦0 ¨F,¢;¨¥>52 ¡ ¡ |Et} 0 1 §¦ ¨ ¢ 58#$TX :,58 6 ¥458 05>0@/,0 6¨0'52,¥4#$>#( 58 ¢>,/, @"3¨0¦9 58¨ º52;¢ *0¦-3¨? 3 ¨ :#* 5j/,0¦33, ,¥,+ ,/,' Q" 3¨058¨ I/0 U¨ 0524- T@58*? 3 ¨ \¦0¦ ¨F,¦0; 1,58*6 G<D/, @"3¨,52D58*C/,'¥2589$-¢ ¢©*510 03¨T6¥8¨¥,>58 \/ 5833¨: *,¥ ;(*¥25:¥20'58¨¥8#$TK5E=?X/¢2¨52¢2¨0 + ¥25,?58 C :,58 6L b( ¥25Q-: 5, 7 52a,¥258¨ :052a58*X/,'¥25!¦#;,/, @"3¨0'58¨ f+ 5C/¢( 2¢ 583¨Ty( ¥2X0 0¥B¢© ,\- TC58 ) 58 ,¥2¥>58,¥8 3¨C(*¥2\- T:58 ) 5? 1,58*6 3 ,0¦; :6 ¢3<¦#<58 4/,' Q" 3¨058¨ a¥8",!#$>0/2!¦"*58¨ @¨F,058¨¦ '0 ¨F,¢¦+ R6,/,¦ *4,/ Q" 3 *p58 J :58*6Y ;(*¥25C#$/J0 3¨¢3$ 0¥>0b#g( /,58¨ k#q :,58 6\¥8¨F+?G? ¨¥? :6 ¢3¨¥)/03- 052, ,=» 3 ¨ d0'/,58¨ f>0¥@6¨/,52052,L- TK58 º 3 K2(3¨,¥C 0520 + ¥2582( /,58('+ <*0¦j ,¥2/¢2-,10 4¨ Q"3¨ :¢ 52,:0>¥8¨ Q" 3¨?/,¦ 5833¨¢B :6 ¢3 ] ¢ C58 >0 0" 58¨> 3 *C¦0 ¨F,¢B¨¢ 58© ,¥?0e :,58 6Q#$¦ ] 58 054 ,¦3¨,/,52¥; :0¦ TX0¥8",/52¥Q¦#" ¦0 -*0¦¨¦+1G?*;"¢29 ,/,' Q" 3¨058¨ f¨5< *h( ¢( ,¥?0 1,'¢ 5c¢" ,¥2¢ 58 ;58*? 1,58*6 #A :0¦ */,?,¥8( 3¨52¥?¥8 ¦=y58 05j,¢ º58¨¥j¥8¨ Q" 3¨; :63*#( */,58¨¦ *¥ #$¦>/, ¥8¨ ¢058¨¦ J- TC58 4/,¦ 5833¨¢¦+BG` 4¦0¦ ¨F,;,¥258¨ :0'52,¥ ~,/,58¨'¢3¨T! !" 0/,58¨/+?e=B,¢¦ =?e=?33 0 0 1,¥258¨ :0'52?# 58*j052¢j º/,0/,Te# " 58¨ Q¨F,0¦9 16¢3f¢© *, 1¢ 52¥40'¥4( e¥2T6¥252, ,'3¨¥,+ ¢¦¦,,¢6¦$ 58¨ k k58*; :58*6 U( ;52:58 40 0" 58¨; 3 ¨ *C2(3¨¥,+?G?* /,¦ 5833¨¢> /,2"¦052,¥>58 ¨¥Á-W6¥25#$0'/,52j 524¨52¥?/,'¥25 - *¢© 5 5. FEEDBACK-DIRECTED INLINING :6 ¢3< ,¥2/¢2-W,¹ aR6,/,58¨¦ I°+ G? ¨¥X¥2,/,58¨¦ p,¥2/2-,¥I0 p¢^ 52¢ ¥8¨ l52K58*I0 0" 58¨a" 589 @¨F,058¨¦ Y¥2T6¥252, Â52X¥8( ""¦5: 3 !#$,,6-*0'/ 69E6,/,52,L 3 9 {X0 TI#$0/,52¦¥Q/0 L/,¦ 582-( 52!52X58 C¢^6",/52,K-6¥25Q#A0/,52¦¦ +kO)5;0! ¨a3¨,¢3$B58*C¥2T6¥252, Â520¦ 6,¥;0X¥2520'58¨¥258¨/,03e¥20 @"3¨ /¢3(*6 J58 Q3¨ Q *0'58¨ Z#j/033 58(2 L¦'¢2*0I0 X0 U9 ¦#;58 X :,58 6L/,033¨¥C Y58 !2( L0" "3¨/058¨ l0 d 10 9 58¨ 03W" 58¨ Q¨F,058¨¦ *¥e¢ 0- 3¨,:- Tb 3 *+>P)( B/¢(2 5Á¨ Q" 3¨¢9 520¦ *¥e0 k0" ",^6¨ :0'58¨ L52:58 ; T *0' Q¨/Q/033<¦0" X-*0'¥2,X :¢ 520'58¨ L¥258¨ :052,¥;58 ;-6¥254#$0'/,52e-*0'¥2,I I58 b#0'/,58¨ 58 ¨¥@0'520+ ¥8 !58 ¨¥Q0¦"" ,^6¨ :052C T *0' Q¨/!/033B0" fc58 ¶ #j T 0 Q¨/:/033¨¥;052582- ( 52,K52:58 Q/033j, ; I58*; T 0 Q¨/ ¥2T6¥252 »¨ ¢ 58©*¥ L 5 M1,',¥?52; 3 0¦ *:" 0¥2¥2,¥>58 ) #$29 /,0¦330¦"D0 :0¦ C,¥258¨ :0'526-*0'¥2,C C0>",¨¦(*¥>¥258( T@#f¦~*9 1058¨ k52:58 4" 58¨ Q¨F¢ !/ Q" 3¨¢¦+?G? 4¥2T6¥252, 10T1/ 6¥2 3 4"¦©3¨;6,/,52,C 3 ¨ *Is¼,v8'#q58*>-¢ ¢©*5B#<3¨ Q *0'58 * 52X,/,' Q" 3¨J0¦3,0 TL" 58¨ Q¨F,,Y :58*6 ¥C52¹ 3 *I*'5:/,033 58( 033¨T[0¦33@/,033¨¥!#' 58 X"'0 D+ Y#(*58( I=?2 e=? ',¥,+ ¨( :°!¥8 ¦=)¥e58*1¥2582(*/,58( :¦#?58 b¨ @"3¨, 1¢ 52058¨¦ 7 =?33;¢^ 0' Q J :¦X¥2" ¨¥258¨/052,Y*(2¨¥258¨/,¥! '3¨ Y : ( ¥8 !58 ;0/2¨52,/58(0¦3<#0 :=?2 D#BR6,/,58¨¦ I³+ ,5203¨,L0¦ *0¦3¨T6¥8¨¥:#j 3 !/0 U¨ 052,¥1;52/ ¨h( ,¥:¥8( /2K0'¥ 0 I0 X¿ 0 ;-¢¥¦ ¥) 3 WX582¨03¨¥Qs tt,v8+ · * [0L58 ,0p¥2=?¨52/ 6/,/¢( ¥! [0L :58*6Y"¦3¨¦(*@58 ] ¥2T6¥252 /,0¦33¨¥;58* ¡¤£¦¥¦§©¨¦ ; :,58 6X#j0¦ |$0¥>=?¢33 O4¥j ,¥2/¢2-,! D :¦4 ,5203 k58*>/,¦ 52¢^ 5?#q58*eR6¢3#9E±³@¨ Q9 ¦¡6b©¦$,, 0'¥C58*D :,58 6d3¨¥252¢ ¢I0¥1U¨¥2/¢( ¥2¥2,Y pR6,/,58¨¦ p°+ t}¢+ZG` ¨¥ " 3¨, :¢ 520'58¨ Ls ³²¢vE658 4¥2T6¥252, ¥8*¦(3¨D520 m4/,0¦)=? ¢ C,/,' Q9 'b3¨¥252¢ ¢1=?03 ¥;58 @58,0' ¦ ¥4¥2520'/ k52C,52 Q *158*@/,033 " 3 *D0; :,58 6\" ,¨( ¥83¨TX/, @"3¨,X=?¨58C#$,U- 0/2 69EU,/52, ¥8¨52B58*0'5c2¨¦ *0'52,:58 ?/,0¦33$+G? 'Á3¨¥252¢ ¢B/¢,0'52,¥c0>58( "3¨ 3 L58 05Q" ,¨¦(*¥C 3 *Z/¢¨¥8¨ ¥!0¦\ 5Q3¨'¥25,+KG?* ¨ ¢ 58#$T !58 4/033 \'Q|$¥8",/©*,!- T158*e/,033¨¢¦ /,033f¥8¨52 6T¹¨¥2¥8( \ K-W58ZR6¢3#9E±³I0 J L¦(1¥2T6¥252, ¸¨¥@58*0'5Q¦ */,C0 0¦ *X/033¨,¦}>0 ! *¥252¥458 ¨¥458( "3¨; 52C0Q-( ~¢¦+ /,0¦334'º¨¥@ 3 ,?¨5: :0¦T¹ !3¨ !0¦""W,0: Z58 :"¦©39 Q 05204( ¥2,C52;U2¨'458 ? *¢^ 5j( *C# 3 . +>G? ¢¢#$¦ * !58 ?-( ~¢B-,/,' :,¥#( 33$*58 >, ?3¨¥252¢ ¢>¨¥?52, Q"¦029 ] #$0¦3(>52)" ,¥2¢'?3¨@ 3 *1,/¨¥8¨ ¥?/,0 @,¥8( 3¨5Á 158 ?¥2T6¥89 3¨TI ,0/,58¨¦0'52,d|¨52¥4( " 052: 1,58*6I=?33< *'54-@/,033¨,a00¦ 52, ¥2/¢33¨0'58. \-58=?, X58=BQ/,' Q" 3¨,J'¢¥8¨ ¥4¦#<0: 1,58*6 0'50;" 3¨¦(*;58 ,0'\¥2=?¨52/2}j0 º¨5j *'58©*,¥>58 ,0'/ L b-6 T J0DU~¢ 5:¥2,5;¦#? 3 K ,/¢¨¥8¨¦ *¥,+DO4¥4 ¥¢£@$4¢©© 52\=B0 6@("a0 ¹" 6/,,¥2¥@58 Q-( ~¢¦+ " ,¨( ¥C=?2 B=?C¥23¨D58¨¥:" - 3¨, - TK¢ ¥8( 2 *K58 051033 ¡r¢¢¨OKª©¨:?<D$¡6¢*©¨¦, G? ¿ '0 ¨F,¢@ :0¦ 520 ¥;0:T 0 @¨/Q/,0¦33j0¦"f*=? ¢ £ · :,58 6 ¥b 3 *d L58 :",¨¦(*¥1¢¥8¨¦ y¦#>58 : :,58 6K0 0/2K, @/,¦2,¥8" ¥Q52C0C58(" 3¨:¦03( Q a58*;- (~¦+;O)#$52 03¨¥2: 3 *J I58*4 ,=p¢¥8¨¦ c+ ( " 058 K58 :=?¢¨¦ 52¥b L58 CT 0 @¨/!/,0¦33?¦0" cj58 ¿ £ · ¦0¦ ¨F,4/3¨,0¥?58 ?-( ~¢¦ 0¦ *Q0/,58¨¦052¥?58*>, >3¨¥252¢ ¢¦+ G? ;/,0¦T!'0 ¨F,¢¦0:¥2"*0¦052@58,0' "¢2¨66¨/,03¨3¨TI,/0T6¥ 6. PERFORMANCE EVALUATION G?¨¥>¥2,/58¨ I¢^6"2¨ :¢ 52033¨TX0'¥2¥2,¥2¥2,¥>58 4"¢2#$¦ :0 /,;#q58* 58 ;, @=?¢¨¦ 52¥) X58 ; T *0' Q¨/:/,0¦33j0" f+ /¢( 2¢ 5<¨ Q"3¨ :¢ 52058¨¦ X¦#58* 03¨0"WUN *@O4 0" 58¨ P)"*58¨ @¨F,09 M 58¨ R6T6¥252, !+1RU/,58¨ Lu +.²@ ,¥2/¢2-¥Q58 :¢^6"2¨ :¢ 5203`¥2,58("f À<2¨6U¨/,0¦33T'<58* ¿ '0 ¨F,¢; ' 6¥;58* £ · ¢6 6¢¢¨f ')*©g* 58 J-¢ / :0¦2 p¥8(¨52@0¦ *p58*I0 0" 58¨Z" 58¨ Q¨F,0'58¨ ¥2T6¥89 52;,/,' Q" (*52;0'0¦"*58¨'4 3 . ! ,/¢¨¥8¨¦ *¥,+>G? g ¡:$¡6¢*©¨¦, 52, /, ©*¦(0'58¨ X" 00' :,52¢¥( ¥2,C !58 4^6"¢2¨ :¢ 52¥,+`RU/¢9 0'0¦"*58¨'¹ 3 *Z0¦ ¨F¢!"2#$ :¥158=?!#( /,58¨ ¥,+ ¥25, 7 58¨ pu +tJ#$6/(*¥2,¥C¦ p58*I¢~,/58¨¢ ,¥2¥X#@ ;( 3¨5893¨¢3@,/,' Q9 ¨5?¨ ¢ 58© ,¥Q',¥? I58*; T *0' Q¨/:/,0¦33<¦0" I=` ¥24"W¢/,¢ 589 " 3¨058¨ ,¥2/¢2-o R6,/,58¨ °+nG` J"2#$ :0¦ */K#158* 0'I#1¥20 Q" 3¨,¥X¢^ /,,p0 p, X*'58 *¥2¥X58,¥8 3¨+ G? ,¥2 #$,U- 0/2 69EU,/52,Q 3 ¨ *@¥8( -*¥2T6¥252, [ 5866(*/,Q ºRU,/58¨ D¼ ',¥?0e0 \52;0¦ 0520;¥2582( /,58( =` ¨/2!¨¥ *©*g ¡4¢§ ©¨,¦ ¨¥j0¥2¥2,¥2¥2,@ DRU/,58¨ Du+ ³+ÁRU,/58¨ Cu + °>",¥2 52¥ 0520;¦ :0'0¦"9 / ¥8(3¨52,K- TX58 Q/ 5833¨C=?*¢ I¨54#$¦ b( 3¨052,¥;/ Q" 3¨058¨¦ 58¨@" 58¨ Q¨F,0'58¨ L¥2T6¥252 ¦2*,0'X0 IRU/,58¨ au+ ¼b" ,¥2¢ 52¥ " 3¨0 ¥,+>O) TC, 4 I58 ¨¥4 05201¥2582(*/,58( @=`33<-W4 3 ,J#j58 0520C D,/, @"3¨0'58¨ K-*0¦¨¦+ /033 : :,58 6Q¨¥j¥8(- ¥2,h( ¢ 583¨TQ,/,' Q" 3¨, ¥8(-m§¢/,552e¢ ¢29 ¦(*¥j¥8¨F,?/ ¥2580 52¥,+?G? ?¥2T6¥252, [¥252¥<58* ¨58¨03f, j*'58 *,¥2¥ 58 ,¥8 3¨C#$023¨T: ¨fU- ( 5"¢2¨66¨/,033gT\U( /,,¥¨5<( 5830/29 Executing Compilers [Base,Opt,...] Code Install New Code Runtime Measurements Edge Instrumented/ Method Subsystem Instrumentation/ Samples Samples Optimized Compilation Code Plan Hot Methods Decay Dynamic Call AOS Compilation Organizer Organizer Graph Organizer Database Thread Dynamic Call Graph Adaptive Inlining Organizer Inlining Rules Compilation Queue Organizer Event Queue Controller Adaptive Optimization System (!%D ¢¡+$'& $B - * *¢(#%-'#¢¡ ¡ £ £ 2 "£C¢¡ £ () £"£* £ ()-J()-(-2! ()- *+12¢¡@¥&¤£-2#'¤£&2*¢(¥¦¥&2*¢()$'(¨§£ *¢(#%- 3 © / * $ G?*: 03#9$3#$C#$@ :58*6K¥20' Q" 3¨,¥b¨¥C²+ ´\¥2/, ¥,+DG?* 6.1 Experimental Methodology à *0¦3#9$3#$X#e, C=?¨ 52¥; y58 CT 0 @¨/X/,033>¦0" L¨¥ G? )"2#$ :0¦ */),¥8( 3¨52¥? !58 ¨¥>¥2,/,58¨¦ !=B¢4¦-*520¦ *,D D0 ´U+ ³:¥2,/,¦ * ¥,+ $?{ ¼¯e{X63´¦¯6t¼4=?¨58158=?>³'³³{XeF>ÀÀB¿?u¯°'" 6/,,¥2¥2¥ 7 2( !O JIp6°+ ³+jG?*;¥2T6¥252, 0¥;² p#q :0 I : :T+ £ \0¦3(*0'52!58 :¥2T6¥252, ¸( ¥8 *I58*ºRUÀ K?¿§¢6 1±®Ks t¯vj-¢ /29 ] O>33f¢^6"¢2¨ : 52¥4=?¢?"2#$ :\( ¥8 * 03¨0¦"6N §¦ ¥? *¦ *'¢ *29 M :0¦2 ¥,58 0¦3¨0"6N *e" 58¨ Q¨F¢ Q/,' Q" 3¨¢>s.²°vE¦0 ;58* 3¨0 M z 0'58¨ 03f/,¦" T *:'02- 0'4/,¦33¨,/,52¦+BG?* 03¨0¦"6N Q-6'5Á¨ :0' M -¢ /2* :0¦2 s °°vE+ÂG<0- 3¨YtK"¦¨ ,¥L0y ,¥2/¢2" 58¨ n#D,0/2 =B0¥;/,' Q"3¨ ( ¥8 X58*:¦"*58¨ @¨F¢ *a/, Q" 3¨¢C0'5)3¨,'¢3et£¤c58 -¢ /2* :0¦2 58*> 6(* ;-¢ #q/¢3¨0¥2¥2,¥>58 05>/,' Q"2¨¥2@58 )-¢ /29 ¦"*58¨ @¨F¢ *L/,' Q" 3¨¢C0 K58 C0 0" 58¨!¦"*58¨ @¨F,058¨¦ p¥2T6¥252, :0¦2 ;0 o58 K¥8¨F,'4 o- T652¥,Q¦#Q¨52¥X/3¨0¥2¥!© 3¨,¥,+ ÀÁ,¨¦(*¥ =B¢: */¢3( ,d L58 :-65@¨ :0'+XG?*@#$33¨¦=? *a/, 58¦33¨¢ =?¦2 µs tv; 0¥I¥8*¦=? i58 05 03¨0¦"6N "2#$ :0¦ */y l58*,¥2 M / ©*¦(0'58¨ K" 00' :,52¢¥e=?¢)( ¥2,! I58 ;¢^6"¢2¨ 1¢ 52¥ -¢ /2* :0¦2 ¥;=?¨58*¦(*5e0 0" 58¨:/,' Q" 3¨058¨ a( 3¨TX :052/2*¥ 58 05>#j58 4 *6( ¥258T93¨06. I?{¸" 6U( /,5e58(*0¦3j :0/2 + G?¨ :¢< 52¢22( "*52¥>|ER6,/,58¨ D° +t'}c=?¢j¢ ¢052\¢T:²¯ à ¹#$6/(*¥X¦ [5E=?K 52¢,¥258 y,¨ :¥!#$k0 0" 58¨L/, @"9 ] Q33¨¥2,/,¦ * ¥¦+ 3¨058¨¦ 0 + ( 2 *X" 0' · ¨r¡mr¢£¸¦¢§¨ ¦¢6 ¥C¦,$¢6$ G?*c ¨58¨03*/, Q" 3¨058¨¦ C*'58 *,¥2¥f58¥8*¦3¨!|ERU/,58¨ 1°+ t} ¥252058( "f" ¦0 o-*0¦¨B58T" ¨/,0¦33¨T:/ 0 ¥Á0¦"¨63¨TQ0'¥¨5< T9 à =?0¥f¥2,5<52Q²+¡o0 :=?0'¥<033¨¦=?,1524¦0T4-58=?, X²¢¡o0¦ * 0 Q¨/,0¦33¨T\3¨'0 ¥?/¢3¨0¥2¥2¥?0 : ¨58¨0¦3¨F¥) 0520@¥2582( /,58(¥,+O>#$52¢ ¯+ t¼ ¡\+ 0X=?3¨'?58 º" ¦0 Â,0/2*¥:0X¥252,0 TI¥252052+ \0¦3(*0'52 ] 58 ?¥252058( "Q¨ :?- T;58¨ Q ;58*j©¥25c2( :¦#58 >RUÀ KB¿§6 :±® G?* ¨58¨03f,/,' Q"3¨0'58¨ I¥20' Q"3¨>¥8¨F,@|ERU/,58¨ D°+ t}c=B0¥ à -¢ /2* :0¦2 ¥>=`¨58D58 >¥8¨F,Q²¯\|$ :U( C}Á "( 52¥,*0¦ *:- TQ( ¥8 ¥2,5?¥8( / I58 05B58*4,/ Q" 3¨058¨¦ L'0 ¨F,¢;=B( 3¨!2( ¹t 58 0¦3¨0"6N X" 58¨ Q¨F¢ I/, Q" 3¨¢@52C/,' Q"3¨C0¤£¦ ¦¥¦¥¦§©¨ § ¥©¥ M 58¨ :,¥;0D¥2,/, +:G?*1¥20 Q" 3¨C¥8¨F,:=?0'¥;033¨¦=?,K52D¦0T " 0' !+ ;¢"¦5;58*1 Q ¨ ;( 58¨ 1Q¦-*520¦ *,K#' © ] ¥8(*/2Y58 05C58 !,/,' Q"3¨0'58¨ i¦0¦ ¨F,I/,( 3¨y2( Z-¢9 2( *¥X¦#@,0/2o-W¢ */2 :02 i|$0K ,= { ¨¥X¥2520¦52,y#$k,0/2 M6z 58=?¢ ktQ58¨ :,¥e0:¥2,/,¦ *X0¦ *X¦ */,;¢TD°:¥2,/,¦ * ¥,+ 2( }¢+ D58* §¦¥¤§© §\-W¢ */2 :02 e=?\( ¥2X0K/,¦ © ( 058¨¦ 7 58 054" 0¥2¥2,¥:²t¯ ¯¯'¯! :¥2¥20¥,c0¦ *X2( ¥4#$¦4( 3¨TK³'¯\¥2/¢9 G?*> ¨58¨0¦3 3 X, 4 58 ,¥2¥458 ,¥8 3¨K|ER6,/,58¨¦ a¼} à ¥4 k( ;¥2T6¥252, D+ =?0¥1¥2,5C52d²+¡0 y=?0'¥º"W¢2¨6U¨/033gT ,6( /,,d( 583;¨5 ,0/2 ,!¯ +t ¡\+ G<X :,0'¥8(D¥252,0 T9E¥252052C"¢2#$¦ :0 /,B Z58*kRUÀ KB¿§6 :±® G?*> 3 . X¥20 @"3¨;¥8¨F,C|ER6,/,58¨ a¼'}?=?0¥?¥25)¥8( /2X58 05 -¢ /2* :0¦2 ¥,*=??¢"W5j58*>-,¥25j¢3¨0" ¥2,!58¨ 1)#' l© >2( ¥, à 58*; T 0 Q¨/@/,033q0¦"I0¦ *X0'0¦"*58¨'b 3 ¨ X0¦ ¨F9 <=?¨58Y58 X¥8¨F,d²¯¯ ¢©©?§ p § ¡K¢J¦ ¡©¨fÄU,§*$ ¢¥>=?( 3¨!2( X /,@,T!t6+¼@¥2,/, ¥,+ |3¨0'¦}Á "( 52¥,+ j58 0¦3¨0"6N *:¦"*58¨ @¨F¢ *C/,' Q" 3¨¢?-¢ /29 7 M D$?@ 3( §£#¢¡ 7 §/ /¢ (J£/ ¡ -2"A1$B ;C¥/ ¢£/" ¢()&2*¢(#%- #¢¡ 7 §/ /£/ £ ()- ©%*£/¥¤ §¨§¤£ ¦ © © O> !¨ Q" 3¨, : 52058¨ #j58 ;wc, Q"W¢39 ¨X/ Q" ,¥2¥8¨ a03¨'2¨58 ²t ²¦´U ®6t6² ¦ 0¦¦0:¢^6"W¢54¥8 ¢33<¥2T6¥252 ²¦¼¦¯ ³'±u ¼³'u © © M ¥ K<^ ,/¢( 58¨ a#j 0520¦-*0'¥2b#g( /,58¨ ¥4¦ I :, :¦T:,¥8¨ 54 0520 ³ ²,¯¨²¦¼¦u §¦§ ²+ ¯+ t 0¦¦0:/,' Q"3¨ ²¦´'¼ ¼¦u² °u'³ M6· M ¦ §¤£ ¦§ ¡¦¥ § ,/,' Q"¥2¥8¨ a#j0( 6¨\© 3¨,¥ ¼¦° ²t¯¨²,®mt · §¦¨¦ ¤¨ 02¨0¦ 54¦#<0:5E=?9E58 ,0!0¦T6580/ *C03¨'2¨58 t'¼ ¼´U ®6¼¦± z § 0¦¦0Q" 0¥2¢ ¢ ¢0'52 ¼'¼ ²³¯ ®®'± M ¦¨ § £¦¨ §¨§¤£ ¥¤ 0¦3¨0"6N *D" 58¨ Q¨F¢ !/,' Q"3¨ ³±'³ ²' ³m´® t±mt M ¦ §¦¥¤§© § {!( 3¨58¨58 ,0 ,K¥2¢'¢e0" "3¨/058¨ Z52:¥8¨ ;( 3¨052@/ 05>6 :¥ u'± t¦¯± ®± ² ¥ 12 /£*'# ¡ @ -2"A1$B ;C¥/ D2/ £ *# £§)D2§* *+12 ¡¥& -2#£ ¤£&2*¢(¥ ¥&2*¢()$'(¨§£ *¢(#%- 3 © / * $ 12: /* / £¥ - # / "£#%$ & ;(/ *¢12 /¢D(* #¢¡ 3465 7H9;<$'=¥>? -2"£1$B ¢C./ 102 <=?@¢"5@58 Q-,¥25@58¨ ::# ©*'º2( ¥Q¦#>/, @"3 58¨ :;0@ :,58 6\¨¥?/033¨,+eA D58 40 0" 58¨@/,¦ © ( 058¨¦ *¥,f58* 58 ;¢ 58@" 58¨ Q¨F¢ !/,' Q" 3¨¢¦c/ ¥8¨¥258 *D#c¦(*¦3¨TI´'¼U ¯¯'¯ - 0¥2¢3 Q/ Q" 3¨¢;/ Q" 3¨,¥40/2X :,58 6!58 )© ¥25?58¨ :4¨5B¢^69 3 ,¥C# 0¦¦0J¥2¦(/!/,6 + 158*¤ §¦¥¤§© §º-W¢ */2 :02 >=? ,/¢( 52,¥,+14¦=?,'¢¦0¥;58 :0" " 3¨/,058¨¦ Y¢^ ,/(*52,¥,q58*@0 0" 58¨ M 7 "54"2#$ :0¦ */º a52¢ :¥;¦#? 1,¥2¥20':58¦(*¦" ( 5Q¦@0 " 58¨ Q¨F,0'58¨ S¥2T6¥252, Â/, 58 6( ( ¥83¨TK¨¢ 58© ,¥:0¦ *I,/, @"3¨,¥ 2( I58 05?"*0'¥2¥2,¥Q²'+t@ Q33¨ L 1,¥2¥20',¥,+ 5> :,58 6¥e05? ¨ ¢@" 58¨ Q¨F,0'58¨ K3¨,'¢3¨¥,+ ¨( C¼C¥8*¦=>¥)"2#$ :0¦ */Q K58 :¥2520¦58("I,¨ 1Q#$ ,0/2 7 6.2 Multi-Level Recompilation -¢ /2* :0¦2 +?G? ;0" I¥8 =>¥?¥8"W,,!¢3¨0'58¨@52:58*4- 0¥23 * G? ¨¥<¥2,/,58¨¦ :,¦0¦3(*0'52,¥<58*j¢~/,58¨¢ ,¥2¥<¦#*58 0'0¦"*58¨'? ;(3¨589 Gi/,¦ © ( 058¨¦ cB586(*¥@52033¨Q- 0¥;¢" ,¥2¢ 5;-,5252¢@"¢2#$¦29 M 3¨¢3 ,/,' Q"3¨0'58¨ D¥2T6¥252, [ ,¥2/¢2-W,Q ºRU,/58¨ 1°`- T;/ Q" 029 :0¦ */,'+K<^ ,/¢( 58¨ D58¨ :¥Á#$¦?0/2C/, © ( 058¨ k/,0 1-?#$( * Q¨52¥?"¢2#A :0¦ */,e52b-W58 $Gy0¦ *C¥8¨ Q" 3¨Q0'0¦"*58¨'Q¥8 3¨9 M I58 ;0" "¢ U^+ 3¨¢3f/,¦ © ( 058¨¦ *¥e# 03¨0¦"6N +> C58 40 0" 58¨;¥8 3¨93¨¢3 M / ©*¦(0'58¨ ¥,c58 4/,¦ 5833¨¢ /, @"3¨,¥e033 5? :58*6 ¥>=`¨58 G?*<,¥8( 3¨52¥¥8 ¦=K58 05c 158*j¥252058( "Q¨ :m0 0" 58¨?,/,' Q9 58 I" 58¨ Q¨F¢ o/,' Q" 3¨¢J( ¥8 y0L¥8 *¦3¨K©^ ,Y¦"*58¨ @¨F,058¨¦ " 3¨058¨ /¢3¨,023¨TX ¢3¨'¢¥4-,5252¢>"2#$ :0¦ */Q58 0 I0¦ T\¦#j58* 3¨¢3$+ Gp/,¦ © ( 058¨¦ *¥,+eG?*@=?¥25>0'0¦"*58¨':/, © ( 058¨ fc3¨,'¢3 M tUj¨ Q" ',Y"¢2#$¦ :0 /,!- TL0K :,0¦ Y¦#@t³A¡/, @"*0¦,y52 G<C0¦33¨=i58 Q^6"¢2¨ :¢ 52¥@52:#$6/¢( ¥4¦ I58*Q¨ @"*0'/,5;#<,/ Q9 58 )-,¥25 Gy/ ©*¦(0'58¨ f05j" 58¨ Q¨F,058¨¦ J3¨¢3f¯+ ¦#A( M 7 " 3¨058¨¦ [ ,/¢¨¥8¨¦ *¥,> X#;58 !/ ©*¦(0'58¨ ¥!"¢2#$¦ H0 T -¢ /2* :0¦2 ¥,>, y¦"*58¨ @¨F,058¨¦ o3¨,'¢3e¯¹¨¥C526X¢^6"W¢ *¥8¨'¹ #A,,6-*0'/ 69E6,/,52,Z" 58¨ Q¨F,058¨¦ ¥J|$+ +¨<58 ,TK ! *'5Q(*¥2:" 9 /,' Q"3¨9858¨ 1* ,0'U Q"2#$ :0¦ */4/,' Q"*0¦,:52;58 ?-*0'¥2¢9 © 3 ! 0520:52:¦(¨ :¥8"/¢©*/@" 58¨ Q¨F,0'58¨ ¥}¢+4G?6( ¥,*=? ¢ X58 3 )/ Q" 3¨¢¦+?G? ,¥2,¥8( 3¨52¥j¥8*¦=L58*0'5c C58 ?¥252058( ":,¦¨ : 0'0¦"*58¨'C¥2T6¥252, / 6¥2¥;52º/, Q" 3¨:0C :,58 6X05e0 k" 589 /,' Q"3¨9858¨ 1d¦'¢2*0Y"3¨0¦T6¥I0 3¨0¦J¦3¨+ k033;-¢ /29 7 @¨F,058¨¦ y3¨,'¢3$¨5@=?334/ Q" 3¨\¨5:58 C¥20 :C=?0¦TI0 Gi/,¦ 9 M :0¦2 ¥,c */,0¥8 K58 :" 58¨ Q¨F,0'58¨ y3¨¢3? 58* $G[/,¦ © 9 M © ( 058¨¦ K=B( 3¨+ ¦e,0/2!- */2* 102 I=?>0 I58 4#$33¨¦=? * 7 ( 058¨ /,0¦(*¥2,¥D¥252058( "y"2#$ :0¦ */K52K¥8( ~¢¦+[G? ¨¥\" " 9 0¦3¨0"6N *D/, ©*¦(0'58¨ ¥ M ¢5ETd 6,¥: 5:*¦3¨ #AC58 X0 0" 58¨K/ ©*¦(0'58¨ ¥,;=?*¢ ¥2¢3¨,/58¨;/,' Q"3¨0'58¨ I0¦33¨=>¥>¢~/,58¨>(*¥2e#¨¦*>" 58¨ Q¨F,0¦9 58*4- 0¥23 *:/ Q" 3¨¢@0¥>0 $G6¤ 58¨ a a¥2,'¢03j-¢ / :0¦2 ¥,+:4¦=?¢¦58 b-W,¥25;¥8 *¦3¨\3¨,'¢3 M à #B0 0" 58¨C¦"*58¨ Q¨F058¨ S¦02¨,¥;0' : !58 Q-¢ /2* :0¦2 ¥b-W¢9 58*;¦"*58¨ @¨F¢ *X/ Q" 3¨¢;0'5?3¨,¢3j¯10¥>0 G6¤ M à 58=B,¢ :3¨,'¢3f¯;0 :3¨,¢3j²'+ B58¨¥0¥2 f ¦¢0¦33$*58 4 ;(3¨589 7 3¨,'¢3<¦"*58¨ Q¨F058¨ ¥258052,'T\ ¢3¨'¢¥;58*4-W,¥25?"¢2#$¦ :0 /,;# 58*;¦"*58¨ @¨F¢ *X/ Q" 3¨¢;0'5?3¨,¢3>² 0¥>0 G6¤ M à 033q/, © ( 058¨ ¥,+ 58*;¦"*58¨ @¨F¢ *X/ Q" 3¨¢;0'5?3¨,¢3Bt@0¥>0 G6¤ M à ¨( CuX¥8*¦=>¥4"¢2#A :0¦ */,: L58 :¥252,0'T9E¥2520'52º¨ ::#$¦ 7 58*@0 0" 58¨C¥8 3¨¢9$3¨,'¢3e/, © ( 058¨ L( ¥8 *X58 @" 589 à ,0'/ C-¢ /2* :0¦2 +?Oe0 f*58 4¦0" X ¢" ¨/,52¥4¥8",\¢3¨0'58¨;52 Q¨F¢ C/, Q" 3¨¢@0'5`3¨¢3j¯ ¤ 58 b- 0¥2¢3 Gp/, © ( 058¨ 0 X58*@¢^ ,/¢( 58¨ a58¨ :,¥;/0 M -4#$¦( ! I58 ;0" "¢ U^+ 58*@0 0" 58¨C¥8 3¨¢9$3¨,'¢3e/, © ( 058¨ L( ¥8 *X58 @" 589 à Q¨F¢ C/, Q" 3¨¢@0'5`3¨¢3>² ¤ G?*j,¥8(3¨52¥j¥8 =Z58*0'5<58*j"¢2#$¦ :0 /,4¦#*0/2C0 0" 58¨e/, 9 58*@0 0" 58¨C¥8 3¨¢9$3¨,'¢3e/, © ( 058¨ L( ¥8 *X58 @" 589 © ( 058¨ p¨¥!/ Q"58¨58¨K=?¨58y¨52¥ G /,¦ © ( 058¨¦ i/,¦( 9 M à Q¨F¢ C/, Q" 3¨¢@0'5`3¨¢3Bt£¤ 52¢2" 05,+XG? C b( 3¨589$3¨,¢3e0'0¦"*58¨'X¥2T6¥252, ¢3¨'¢¥C58*:-¥25 "¢2#A :0¦ */,B# 58*?0'0¦"*58¨'>/, ©*¦(0'58¨ ¥, =`¨581¦¢0¦33"W¢29 58*C0'0¦"*58¨'X b( 3¨589$3¨,¢3@¥2T6¥252 ( ¥8 *K58 C" 58¨ Q¨F¢ à #$¦ :0 /,C=?¨58 St ¡ #e58*@-,¥25 Gi/, © ( 058¨ S05;¦"*589 M /, @"3¨¢ 05>0 TD#<¨52¥>58 ,43¨,3¨¥,+ Q¨F,0'58¨ L3¨,'¢3etU+1G?¨¥;,¥8( 3¨5Q¨¥;¢ /,( 0¦ * ?¥8 /,!58 G M /,¦ © ( 058¨¦ X"¢2#$¦ :¥Á ;/,' Q"3¨0'58¨ f*"¦©3 ¦? ,/¢¨¥8¨¦ :0¦ 6 *K6( 2 *I58*:2( 58¨ :X05@¥252,0'TI¥252052+kG` C0 0" 58¨ G? $Go/ ©*¦(0'58¨ ¥:/, @"3¨C,0'/ I :58*6I58*;© ¥25;58¨ : M ¥2T6¥252, i03¨¥2;-¢ ¢© 52¥#' [3¨0T :¦"*58¨ Q¨F058¨ q+ ( 2 *@58* · ¨5>¢^ /¢(*52¥?0 \ ,?,/,' Q"3¨@0@ :,58 6+BG`6( ¥, 58*¥24/,¦ 9 ¢3¨0¦T< :¦:#>58 Q" ¦0 3¨'0 ¥Q T *0' Q¨/,0¦33Tj¥2C3¨052¢1" 9 © ( 058¨¦ *¥1 3¨T! */¢( 158*@¦¢2 ,0a#B/, Q" 3¨058¨¦ Z58*Q© ¥25 5 JIT OptLevel 0 JIT OptLevel 1 JIT OptLevel 2 Adaptive OptLevel 0 4 Adaptive OptLevel 1 Adaptive OptLevel 2 Adaptive Multi-Level 3 2 Speedup over JIT Baseline 1 0 compress jess db javac mpegaudio mtrt jack opt-compiler volano geometric mean (!%D 32* *¢D& &@ ¡ #% ¢$B¥-2"£ 8 JIT OptLevel 0 JIT OptLevel 1 JIT OptLevel 2 6 Adaptive OptLevel 0 Adaptive OptLevel 1 Adaptive OptLevel 2 Adaptive Multi-Level 4 Speedup over JIT Baseline 2 0 compress jess db javac mpegaudio mtrt jack opt-compiler volano geometric mean (!%D ¢¡ 32*£ £ © ¡ /* *'& ¡ #% ¢$B-2"£ 58¨ @¨F,058¨¦ p520 6¥:0 ¦0 520'X# 0X,0'52¢C¨,= ¦#;58 \=? 3¨ G?*;52¦"X5E=?b" ¨@/ 052¥?33( ¥258052:0:/0¥298¦0 X- ,0 k¦=? " ¦0 !+B !¦(B/¢( 2¢ 5?/,' Q" 3¨¢¦58¨¥j,¥8(3¨52¥j X :¦)~,/¢9 #f52'5203 O4P;R@¥2T6¥252, i'¢2 ,0+jG` ,¥2>58=B4"¨>/2*0¦52¥? : 9 58¨';58(*0¦3¨F0'58¨ K0¦ *C 3 ¨ * c0¦ *C3¨,¥2¥4 T *0' Q¨/;3 6 ¥258052;58 05e58*;52'5203q58¨ :Q¥8"W¢ 5) I58 QOeP;RC58,0'¥>¨¥)¢3¨0¦9 3¨06 *:524¨ @"¦º"W¢2#$ 10 /,4¦?0¦33 $GK/,¦ © ( 058¨¦ *¥ 58¨3¨TJ¥2 :0¦33$<0¦¢0' X®+ u£¡µ#$e"'0' ¸¥252058( "K0¦ *Iu+ ¯£¡ M ¦ X¥2' :b-W¢ */2 :02 ¥,+ #$¦\3¨¦ *¦9$2( W+ G? J¥8¨ Q3¨0¦2¨58TY [¦'¢2*0Y#$D58 J5E=? ,¦¨ :,¥@/,0 K-W\0'52582-( 52,K52X58 :/,'¥2589$-¢ ¢©*51 :63?¦#>58* B58 ¨( ,¥k¼ 0¦ *YuI33(*¥2580'52K58*0'5!0¦ Ty !© ^ ,Y¥2580589 /,¦ 5833¨¢X|$ ,¥2/¢2-W,K ZRU/,58¨ L° + ³m}¢+:?TI,¥258¨ :0'58 *X#( 58( 7 TL6¥Q *'5C¥8(¨5:0I=?¦2 63¨0Y=?¨58L" 0' :¥C58*0'5C¢^ ,/¢( 52 ¢^ ,/(*58¨¦ X58¨ :m58*> :6 ¢30¦¦¨¥j"¢2#$¦ Q *@526; ;(*/2C=?¦2 #ADU~W¢¢ 5!3¨¢ 58 ¥!¦#@58¨ :+ C3¨¦ *¦92( y" ¦0 :¥, 05<¥2520¦58("f'T,5<0¦33¨=>¥j :B58¨ :#$¦j" 58¨ Q¨F,058¨¦ D0¥c" 0' 7 58 ) ¨ ,¥25>" 58¨ Q¨F,0'58¨ I3¨,3c ¢3¨'¢¥458 )-¥25"¢2#$¦ :0 /, ¢^ ,/(*58¨¦ L/, 58 6( ,¥,+;À<,¨¦(*¥@¢¥8¨¦ *¥;¦#?58 @0 0" 58¨C¥2T6¥89 #A Gi0 K¥8 3¨¢9$3¨,'¢3@0 0" 58¨D/, ©*¦(0'58¨ ¥,+L4¦=?,'¢¦ 52, i58 05?6¨: *'5(*¥2>0@/,¥2589$- *¢© 5? :6 ¢352 * ,!52;¥8"W¢ *C0 M #A1¥8*¦5892( J" 0' :¥,?58 :¨¦*¥25\¦"*58¨ @¨F,058¨¦ Y3¨,¢3 3¨0'¢4"W¢/,¢ 520'@#j58¨ :;"¢2#$¦ Q \¦"*58¨ @¨F,058¨¦ K I¥8*¦589 ¢3¨'¢¥J58 'N "¢2#$¦ :0 /,+iG? X0 0" 58¨K ;( 3¨5893¨¢3 2( *L"'0' :¥,+A S0 U¨58¨¦ c;- 0¥2¢3 K/,' Q"3¨0'58¨ i0¦ * ¦, ¥2T6¥252 »0¦"" 3¨,¥>" 58¨ Q¨F,0'58¨ ¥f§ (*6¨/¢¨¦(*¥83¨T6*0'52520 *; ¨C"¢29 0¦2-*0';/,¦33¨,/,58¨¦ K/,' Q" 2¨¥2Q0@¥2 :033f"¢/, 520;¦#<¢^ /¢(*58¨¦ #A :0¦ */,; !-W58I58 ;¥252058( "I0 X58*;¥252,0'T9E¥2520'52b,¦¨ :,¥,+ 58¨ :; !-'58X,¨ 1,¥,+ G?*>-5252' µ"*0¦e#c" ¨;/2*0¦52¥)¥8 ¦=>¥?58*43¨058¨@58¨ :e¥8"¢ 5 6.3 Feedback-Directed Inlining Y0/2YOeP;Rd58 ,0+YG? !"¢/,¢ 520'I# 58¨ :X¥8"¢ 5C/,' Q9 ¨¦( ´4¥8*¦=>¥j58*"W¢2#$ 10 /,)¨ Q" 0/5?#*#A,,6-*0'/ 69E6,/,52, 7 " 3 *! X-'58X,¨ 1,¥4¨¥4¥8¨ Q3¨0¦¦c0¦"" ,^6¨ :0523¨TK¼¦¯£¡\0'0 3 b @0¦ @0 0" 58¨> ;(3¨589$3¨,'¢3*¥2T6¥252 #$¦c-'58@58*j¥252058( " 6(*X52I58*D/, 58¦33¨¢X 16¢3$+SG` !¦0¦ ¨F,X58 ,0 ¥: */¢( 0¦ *D¥252,0 T9E¥2520524,¦¨ :,¥,+ >0/2!-¢ /2* :0¦2 X=?e¥8*¦=Y58 7 ¥83¨ 583¨TI¨¦*¢1¦¢2 ,0'J#$ 58*@3¨ 9$2( *J" ¦0 :¥4-W¢9 ¥8"W,,K¢3¨058¨'X52X58*C0'0¦"*58¨'X b( 3¨589$3¨,¢3 ¥2T6¥252, ¸# Â58 /,0¦(*¥2K0/2Y"'0 ¥8"¢ ¥I :I58¨ :X [0L¥252,0'TY¥2520'52+ " ,¨¦(*¥e¥2,/,58¨ f+?wf0'¢>-*0¦¥`",¥2 5`-W,5252¢>"¢2#$¦ :0 /,+ ( 2 !58 ¨¥458¨ :58 ;'0 ¨F,¢@58 ,0 ¥4/ 58 6( :52Q" 6/,,¥2¥ · 03( ,¥@,0'52¢158*0¦ Y²+ ¯\ U¨/052!58 054#A,,6-*0'/ 69E6,/,52,L 9 z 2( 58¨ :Q 1,0¥8( , :¢ 52¥,*- ( 5) ¥2¢5)#$=?¢e, 52¥) I58 ;0¦9 3 ¨ @"¦y"¢2#$¦ :0 /,!¦'¢C58 !0 0" 58¨X ;( 3¨5893¨¢3 ¨F,¢C,'¢ 5;h( ¢(*'586( ¥;,U( /¢ K58 :/, 58¦33¨¢¢¦ ¥:/, @"( 5209 ¥2T6¥252 ¤j0¦3(*¥b3¨,¥2¥158*0¦ Y²+ ¯\ U¨/052!0!"W¢2#$ 10 /,C,¦09 58¨ X3¨'0+ 058¨¦ c+ ¦;-58K" ¦0 Â¥252058( "a0 K¥252,0 TI¥252052:58 :OeP;R¹¦'¢29 7 158*C¥252058( "L,¨ 1<-58 © ©C0 §¦§ ¥8¨ © /,0 583¨T 7 ,0µ|$58 I¢^ ,/¢( 58¨ 58¨ :K¦#C58 J/,¦ 5833¨¢ 0 ['0 ¨F,¢ ¦ ¨ @"¦L=?¨58Y#$,U- 0/2 69EU,/52,o 3 ¨ * :=?¨580 ²¯£¡ 0¦ * 58 ,0 ¥}`¨¥>3¨,¥2¥;58*0¦ I³+ ´ ¡µ¦#j58*@52520¦3<¢^ ,/(*58¨¦ K58¨ :C|$ 3¨T ° +´ ¡ "¢2#$¦ :0 /,\¨ @"¦ :¢ 5,¥8",/,58¨'¢3¨T+aP) 3¨T §¦¨¦ ¤¨¥¦ ¥ tU+ ±£¡¸#$D58 \3¨¦ *¦92( L,¨ 1¦}¢+YG?¨¥D/, © :¥C¢^6"¢29 "W¢2#$ 10 /,>¥8¨ ©*/,0¦ 583TC ,0'¥=?¨58104u+ ´ ¡p,¦0 058¨¦ c+ :¢ 520¦3<¦-*¥2¢¦0'58¨ ¥;#<" ,¨( ¥4,¥2,0¦/ as ³m¼U*°'uvE+ P4'¢033$*#A,,6-*0'/ 69E6,/,52,! 3 W\¨ Q" ¦,¥?"¢2#A :0¦ */,;¦# 58 C¥8*¦5b2( J" 0' :¥;- Td²+¡\+ :6¨K *'5Q¢^6"W,/,5@52 ] ¥2; b( / X"W¢2#$ 10 /,b¨ @"*0'/,5) I58 ¨¥),¦¨ :;-,/,0¦(*¥2@#j58 6.5 Recompilation Decisions ¨( I±J ¢" ¨/,52¥!58 !,/,' Q"3¨0'58¨ /¢¨¥8¨ ¥X :0 !- TL58* 7 " ¦0 :¥¦B¥8*¦5!¢^ /¢(*58¨¦ p58¨ :,¥,+pO ¥8*¦5\^ ,/¢( 58¨ 58¨ : /,¦ 5833¨¢j @58*j0 0" 58¨> ;(3¨589$3¨,'¢3 ¥2T6¥252, o6( 2 *;58 ¥2520 T9 6,¥4 5e033¨¦=i :0 TX :58*6 ¥;52:-Q/ Q" 3¨,K0'5) ¨a" 589 ¥252052X,¦¨ :+ D,0'/ Y- */2* 102 4#$¦(D-*0¦¥!0¦J¥8 ¦=` 7 @¨F,058¨¦ J3¨,'¢3¨¥Q|$=? ¢4 3 ¨ *X6//¢(¥}¢ e52Q-4/, Q" 3¨, ,0'/ I-*0¦4¢" ,¥2¢ 52¥@58 b"/,¢ 520':#`033j :,58 6 ¥;58*0'54© 9 6( Q52Q ,=Y*'5>/,033q¥8¨52,¥,+ ¨¥8 ,X05>58 ;¨ I" 58¨ Q¨F,058¨¦ K3¨,'¢3$+>G?*4- 0¥2¢3 Q- 0>¢" 9 ,¥2¢ 52¥j :,58 6 ¥?58*0'5=B¢? *,'¢j,/, @"3¨,C- TQ58 >0 0" 58¨ e58*;¥2520 T98¥2520'524,¨ 1*#$,,6- 0/2 6986,/,52¹ 3 X/,¦ 9 7 " 58¨ Q¨F,0'58¨ S¥2T6¥252, !+DG` Q3¨,'¢3;²C0¦ *J3¨¢3et:-*0¦¥Q0¦Q#( 29 ¥8¨¥252 583¨Tl¨ @"¦¥J"¢2#$¦ :0 /,+ ,,6-*0'/ 69E6,/,52,i 3 9 7 58 ¢D¥8(-6¨¨ ,[52K¥8 ¦= ¦= :58*6 ¥\,0'/ ,Y58 ¢!© 03 K¨ Q" ', © ©k- TZ´³A¡½0¦ * §¤£ ¦§ ¡¦¥ §\- TZtt ¡C+oG? /,' Q"3¨0'58¨ Z¥252052'+eA I58 Q0'0¦"*58¨': b( 3¨589$3¨,3>¥2T6¥252, 58*¢ §¦¨¦ ¤¨j-¢ / :02 1 /,j0'0 1,¦0 ,¥<=?¨58:0B±£¡Y,¦0 058¨¦ c+ 0X5E=?X"*0'58*¥D0K :,58 6y/,0¦ Y#$33¨¦= 52J3¨,'¢3C² ¨58*¢k58* P4'¢033$6#$,U- 0/2 69EU/,52,: 3 ¨ *Q¨ @"¦¥"¢2#$¦ :0 /,?- T :,58 6L=?0¥@6,/,583¨Td/, Q" 3¨,Z05Q3¨,'¢3;²'¦C58 \ 1,58*6 0¦ X0¦0@#>²'²¢¡\+ =?0'¥©¥25j,/, @"3¨,X0'53¨,'¢3<¯@0 C58*¢ D,/,' Q"3¨X00¦ X0'5 3¨,'¢3;²+1R¨ Q3¨023gTB58*¢10Q#$¦(;"W¥2¥8- 3¨\" 058 ¥Q58 054,¥8( 3¨5 6.4 Adaptive System Overhead D0Q 1,58*6:- *:/ Q" 3¨,X05j" 53¨,'¢3qtU+<e¦=?,¦U#AB( ¨¦(L®K33( ¥258052,¥K=? ¢I¢^ ,/¢( 58¨ i58¨ 1¹¨¥X¥8" 5! [58 -¢ /2* :0¦2 ¥? *@ :,58 6C0/,58( 033¨TC526 º58*>"*0'58!58 05j¢ 520¦3¨, 7 ¦0¦2¨( ¥;/, Q"W ¢ 52¥Q¦# 03¨0¦"6N !=?* X(*¥8 X58*; ;( 3¨5893¨¢3 -¢ \/, Q" 3¨,I05>033q58;#j58 ;" 58¨ Q¨F,058¨¦ K3¨,'¢3¨¥,+ M 0'0¦"*58¨'Q¥2T6¥252 µ=?¨58!#$,U- 0/2 69EU/,52,! 3 +>G?*>©*¦( /2 00/52¢2¨F,,¥:58 :¦2*,0'J#$¦@58=?C¢^ ,/(*58¨¦ d¨ :,¥ " 9 G?*>0'0¦"*58¨';¥2T6¥252, [,/, @"3¨,C-,5E=?,¢ I²¦t ¡µ| §¦¥¤§© §6}W0¦ * ¦0 ¥252058( "y0¦ *K3¨¦ *¦92( K"'0 1¥,+ ¦C58¨¥@©*¦( °6¼ ¡ | §¦§ }:#10331 :,58 6¥I T *0' Q¨/,033gTi/, @"3¨,+ÂG?* 7 ¦ " ¦0 ¥252058( "!/2,¥8"¦ * ¥>52b© ¥25<2( D#f58 ;R6ÀKB¿§¢6 :±'® :'¥25c/,' : : 3¨T;¥2¢3¨,/52,Q¦"*58¨ @¨F,058¨¦ \3¨¢3 =?0'¥3¨,'¢3²¦=? ¨/ -W¢ */2 :02 ¥<=?¨58@ " (*5<¥8¨F)²¯'0 43¨ 9$2( *@/,2¥8" ¥ ¨¥4/ ¥8¨¥252¢ 5;=?¨58X58 Q :6 ¢3f"*0¦0 :,52¥458 054 ¢© *@58 ;¢^69 521/¢(* ;( 3¨058¨158¨ Q *'¥)#$¦?© 42( *¥e#<58 ;¥20 14-¢ / :02 ¥ ",/52,Q-¢ ¢© 52¥?0 :/,'¥252¥<#0/2C" 58¨ Q¨F,0'58¨ !3¨¢3$+B{X¥25<# =?¨58L "( 5:¥8¨F,I²,¯¯ +IG` ¨¥@U~¥\¥83¨¦ 583¨Td#' ¸58 !¥252,0'T9 58 Q :58*6 ¥;58*0'5),0'/ ,I58*; ¨ ¢:¦"*58¨ @¨F,058¨¦ d3¨¢3¨¥:|2² ¥2520'52 0520 =? ¨/ @¢"¦52¥c58 Á-W,¥25c58¨ :B#6© 2( *¥,+qG` j0'520 0 Ct'}"*0'¥2¥2,:58 ( D0 @ 52¢ :,6¨052;¥2520'?¦#" 58¨ Q¨F,0'58¨ ",¥2 52¥?58*>/¢( ;(3¨0'58¨458¨ 14¥8"¢ 5j¢^ ,/(*58 Q¥2T6¥252 »/ Q9 -¢#A;58 ,T!=?),/,' Q" 3¨,K05>58 ¢>(3¨58¨ 1052Q3¨,'¢3$+ "W ¢ 52¥? @-'58:"6/,¥2¥2¥?¦#58 4R6{XÀ<+G? #0'/,58¨ D#W58¨ : ¥8"W¢ 5? !0/2X58 ,0D=?0¥j/,33¨/,52,!#$¦>033f¥2,'¢ IR6ÀKB¿§¢6 :±'® ¨( :²,¯1¢" ¨/,52¥>58 4,/, @"3¨0'58¨ a0/,58¨¨5ET!#q58*e0 0" 58¨ 7 -W¢ */2 :02 ¥I0 y#$D-58p,¦¨ :,¥,+ G? X0'¢0'K#158 ,¥2 ;(3¨589$3¨,'¢3>¥2T6¥252, ¸=?¨58I#$,,6- 0/2 6986,/,52 3 *K6( 2 *X0 #g0/,58¨¦ *¥e=?0¥>58 ¢ I/, @"( 52,X¥2¢" 00'52¢3¨T\#$¦e,0/2!,¦¨ :+ 3¨ 9$2( º" ¦0 i=?¨58:" *0'¥24¥8 #$52¥,+BA 158¨¥?^6"¢2¨ :¢ 5, 1.74 Program Startup Steady State 1.5 1.23 1.11 1.10 1.08 1.08 1.05 1.06 1.04 1.05 1.00 1.01 1.01 0.99 1.01 1.00 1.01 1.00 1.0 0.93 0.91 0.5 Speedup over Adaptive Multi-Level 0.0 db db jess jess jack jack mtrt mtrt javac javac volano volano compress compress mpegaudio mpegaudio opt-compiler opt-compiler Geometric Mean Geometric Mean (,!.D + ¢¡¢$ &2§"£* #¢¡ #%-)()-2 ¡ £ £ 2§"AC¢¡ £ (J £"£* £ ()-)()-(-2! Breakdown of Jalapeño Execution Time Program Startup Long Running 8.6% 6.0% 0.9% All AOS 0.3% 0.1% Threads 2.6% Garbage Collection Baseline Compiler Application Thread(s) 88.6% 92.9% Breakdown of Time in AOS Threads Program Startup Long Running 4.3% 15.9% Controller 58.3% 20.6% Method 13.5% Organizer Inlining Organizer Decay Organizer Optimizing Compiler 6.5% 12.4% 51.6% 5.8% 11.1% (!%D > ¡ +£C £# - #¢¡6*¢()$B /¢& - *()-'§ ¢(#%D2/ ¡¥&@¤£-2# *¢1 £¢£/ 100 80 Baseline 60 Baseline -> Level 0 Baseline -> Level 1 Baseline -> Level 0 -> Level 1 Baseline -> Level 2 40 Baseline -> Level 1 -> Level 2 Baseline -> Level 0 -> Level 2 % of All Methods Compiled 20 0 compress jess db javac mpegaudio mtrt jack opt-compiler volano (!%D = 7 #%- *¢ #%) £"£#%$ &(J *¢(#%- ££" (/¢(#%-2/ ¡ #% *¢12?¢£&2*¢(¥ $?D*¢( ¡ ,£ / ©%/* $ (*¢1 ¡ £ £ 2 "£C¢¡ £ () £"£* £ ()- ¡ )()-()-2! £ D ¢()-2! *¢12 /*£ £ © ¡ /* * £!%()$B 50 Level 2 Level 1 Level 0 40 30 20 Number of Methods Recompiled 10 0 compress jess db javac mpegaudio mtrt jack (!%D B ¢¡ £"£#%$ &(J *¢(#%-B "£*¢(<(,* © 1() ¢D--(J-2! *¢12 / £¥ - 346587H9¢<$'=¥>?@ -2"A1$B¥ ¢C¥/ (J-'*¢12 /$B¢¡§¦ ¨ 5 "£1 -2"£1$?¥ ¢C (/ ¢D- #%-2"£?D2/+(J-2! *¢12B/+( §£' (J-&D2* / 12¥¤ ¡ ¦¤<(/ + & £/ -%*/ *+(J$??&2¥ *¢(*¢(#%-2 £ ()- * # ¨¤% £¡ /¢(¨§£ £ § ()-%* §/ 0/2[¦#:58 J¥2¢ lRUÀ KB¿§6 :±®K-¢ /2* :0¦2 ¥J=B0¥\2( /, ¥2T6¥252, " ¦,¥2¥2,¥,;=?D=?33@ :¦! /¢,0¥8 3gTp52=B0y0¦ *0¦9 =?¨58L¥8¨F¹²¯¯! "( 5Q L0D¥8 *¦3¨ {K+G? ¨¥Q6~¢¥Q#g ¸58 3¨T658¨/K ,/¢¨¥8¨¦ *¥!- 0¥2,Y¦ Y©¥25:" 2 */"3¨,¥,@0¦ *Y¢^ /¨¥2J0¦33@0 M6z " ,¨¦(*¥>"¢2#$¦ :0 /,4,¥8( 3¨52¥,*=? ¨/ X2( D,0/2!- */2* 102 C 6/`" 00' :,52¢¥j# i58 `¨ @"3¨, 1¢ 52058¨¦ c+ ,'¢3¨" :0 D¢#9 · 0@#,¥8 {K+*G? )^69E0^6¨¥;¦#<58 b© ( 4¢" ,¥2¢ 52¥458¨ 1#' #$,/58¨C :6 ¢3?¨¥:0X :0¦ Z0,0!#$¦;#( 58(C=?¦2 <,¥8",/¨033¨Td M6z ¥2T6¥252 µ-65?52;" 0' ¢^6¨5," 058¨58¨¦ *! 52!²,¯'¯Q©^ U9E¥8¨F, 58 4",¥2 */,@#< 3 X0 ! ;(3¨58¨58 ,0'U + 520¦3¨¥,+?G? ^69E0^6¨¥¨¥< :0¦2 6,1524¥8 =Z0" ",^6¨ :0'52¢3¨TC=?*¢ 0/2J- */2* 102 I-, ¥@0 J¢ ¥4¨52¥;¢^ ,/¢( 58¨ f+:G? QT9E0^6¨¥ 4#$,¢358 05 0¦¦0Q¥2,D0¥>0 D¢~/,58¨@0 \" 6U( /,58¨'b3¨0¦ 9 ] M ¦¨,¥D58*! 6( ;-¢D#;,/ Q" 3¨058¨¦ *¥I58*0'5C6/,/¢( 2,d p,0'/ ( 0')#$¦¨ @"3¨, 1¢ 58 *C58 >¥2T6¥252, !+ 0¦0 ¦ ¥j¥20#A,58T;"¦"¢58¨,¥ M 520¦3$+ K0'/ p-*0¦!¨¥X¥8( -6¨¨,i52L¥8 =V58*J 6( ;-¢X¦# 0 I :, :¦TX :0 0', :¢ 5@,0¥2K-( ¦ *I58¦(*¦*¦(*5@ ¢9 /, Q" 3¨058¨¦ ¥;05>,0'/ I¦"*58¨ @¨F,058¨¦ K3¨,3$+ 3¨" :¢ 5,+ ;¢^6" 3¨¨52 0¦0158,0'¥;0¦ *X¥2T /2¦ ¨F,0'58¨ ] M "W¢058¨¦ *¥D52¹- (3¨Y58 !0'¥2T */2 ( ¥X¥2T6¥252, /,' Q"¦ *¢ 52¥,+ Oe¥Q^6",/,52,?=? ¢ Z,0/2L *=»-¢ /2* :0¦2 L-, ¥:¨52¥:¢^ ,/(9 4¦=?¢¦j0/,D/, U¨58¨¦ *¥C, :0¦ pU C/(3¨5,>0¦ *Z¥2( *Z/, 9 58¨¦ c58 @¥2,54¦#<*'54 :,58 6 ¥4/2*0¦ *',¥;U0' :058¨/033¨T<'¢ ¢0589 /¢( 2¢ 54¥2T6¥252 ,¥8¨¦ X¨¥4¨520¦3$+ I0! *,=i¥2,5@#B,/, @"3¨0'58¨ p/,0¦ *6¨0'52,¥,+IG?¨¥Q¥8(3¨52¥; 58 Q /¢,0'¥2º a58 b 6( b-W¢:¦#3¨¢3B¯:,/, @"3¨0'58¨ ¥\0'5458 R6 :J" ,¨¦(*¥I¥2T6¥252, :¥K|$+ +;s t®¦v$}:*0¦'J¢3¨,[¦ Y3¨ Q¨52, -W, K¦#40/2J- */2* 102 %¦ ¥:¢^ ,/¢( 58¨ f+DO4¥;¢^ ,/(*58¨¦ y¦# - (*5C#$0¥25C/,' Q"3¨I¥258(- ¥!52J"W¢2#$ H2( 58¨ :J¦"*58¨ @¨F,058¨¦ <+ 0/2Q" *0'¥2>/, 58 6( ,¥, :0 T@ :,58 6 ¥<58*0'5c, :0 1*'5¦06(9 A Z/,¦ 580¥25,>=?D/ ¥2X0I6~¢¢ 5D,¥8¨¦ Y" 5D=?¨58Y0X#(33$ 0'52;52b ¨ ¢ " 58¨ Q¨F,058¨¦ K3¨,'¢3¨¥,+?O> *'58*¢> 52¢¥258 *D58¢ * *¢0¦3j" 58¨ Q¨F¢ J/ Q" 3¨¢@58 054/0 X,/,' Q" 3¨:0 TC"*0¦54# ¨¥j58 05c3¨052" *0'¥2,¥< ¨58¨0'524 :¦`/, Q" 3¨058¨¦ X0'/,58¨¨58T:58 0 58 Q0¦"" 3¨/,058¨¦ Z/,6'*3-0¦2¨,¥,< 58* {¨52¥2¢3#2+ 3¨C( z ] 023¨¢>" *0'¥2,¥,+jG)=B4#$0/,52¦¥/0( ¥2458 ¨¥` /¢,0'¥2) C,/,' Q" 3¨09 0" " 0/2X"'52¢ 58¨033¨T! 5866(*/,¥4 :¦42( 58¨ 1;'¢2 ,0=? 58¨¦ D0/,58¨¨5ET+ ¥25, §¦§ 0¦ * § *0¦'`3¨0¦¢B=?¦2 6 *@¥2,52¥ 0'C, 1 ¥258052,K52/ ¨h( ,¥:58 0543¨ @¨5:58*1'¢2 ,0K0¦ * 7 ¦ ¦¨ ¦#>*'5Q :58*6 ¥:58 0 Z §¨§¤£ ¦ © © © ©c0¦ * ¥+XR6,/,¦ * 0/2 ¨,:'66!"¢2#$¦ :0 /,Q I0:#( 339$-3¨¦=? 0¦¦0 58( 03j{X0¦9 M z ¦ 0'¥4¢^6" 3¨0 ,J aR6,/,58¨¦ K° + ³ *58 ;/, 58¦33¨¢@0¥2¥8( :,¥;58 05>58 /2 + " ¦0 H=?33e¢^ ,/¢( 52!#$¦:5E=`¨/!0¥@3¨ K0¥Q¨5@*0'¥\/(2¢ 583¨T 033¨Tf=?) 52;0¦ X¦¥8¨ Q"3©W/,058g K k58*;0¦ *0¦3¨T658¨/: :6 ¢3 2( f+>G` ¢¢#A J3¨0'52¢;¥2520',¥e#j58 ¨¥)2( I58*@/, 58¦33¨¢@¥2¢9 7 #`R6,/,58¨ °+ ³+eG` ¨¥; :6 ¢3B0¥2¥8( :,¥:²,¯'¯£¡ ¿?À ( 583¨F,058¨¦ < 3¨/,52¥: :,58 6 ¥Q#$;/, Q" 3¨058¨¦ p :D0',¥2¥8¨'¢3¨TK-,/,0¦(*¥2 ¶ 0 X ,/¢¨ ,¥;=?*,58 ¢e52:0¦33¨6/,052C¿?À /,T6/¢3¨¥;52:58*;0¦"" 3¨/,0¦9 ¨5D¢^6",/52¥\52a¢ ¦§TZ0J3¨ !"¢2¨6p#@58¨ 1X52J,/,¦!¨52¥ ¶ 58¨ Z¦:52X58 C/, Q" 3¨¢¦+a4¦=?,'¢¦c L ¥8¨ 5,>=?:,0¦3¨F, / Q" 3¨058¨¦ L/,¥252¥,+ 58 05j58¨¥?0'¥2¥8(* @"*58¨¦ !¨¥< *'5¦03¨C#$j58 >¥8(- ¥2,5?¦#( >¢^6"W¢29 ¨ :¢ 52¥@58 054( ¥2:¥8 *¦3¨¢9E580 ,y/,6 ,¥@ a0! ;(3¨58" 6/,,¥2¥2¦¦+ 7. DISCUSSION G<!/2,/,5158¨¥,j=?Q" 3¨0 Z52X¢ 0 /,!58 C0 03¨T658¨/X :6 ¢3>52 J 0¦J" ,¥2¢ 52,58*I¥8¨ 0 ¨ @"3¨, 1¢ 52058¨¦ #10 ] ,6(*/?58*B¢^6",/,52:/,¥25<¦#*/ Q" 3¨058¨¦ !#58 ?¥2T6¥252, [ ,52,/52¥ ^ 52¢ *¥8- 3¨:0¦ *: ¨ 9"W¢2#$ 10 /,Q0'0¦"*58¨'Q¦"*58¨ @¨F,058¨¦ K¥2T6¥89 ¨63¨\" 6/,,¥2¥2¥,+ C! 5@¢^6",/5:58*C/,'¥25Q¦#>/,' Q"3¨0'58¨ ] 52 !+ @ *¦=["¥2¢ 5Q¥2' ::¥8( -m§¢,/,58¨'!- ¥2¢¦058¨¦ *¥C¦ K58 ] 52!-DF,¢j6(*D52X :, :¦TJ¥2T6¥252 /,¦ 52¢ 58¨ f?-( 5@/¢3¨,023¨T ¥2T6¥252 !+ 58 Q/,' Q" 3¨¢@/,0 D(*¥2;¨63¨:/,T6/¢3¨,¥e :@0',¥2¥8¨'¢3¨TI58*0¦ I( /¢( 2¢ 5j¥2T6¥252, !+ ?¢^6"/,558 ¨¥j/ 0 >=?33*¨ Q" ¦>( "W¢29 ] G? :¥2T6¥252,  ;(*¥25@ :0 0'C0!¥8( -*¥2520¦ 58¨03e¦3(* :D#> 0520X#9 #$¦ :0 /,)#AB¥2/,¢ 02¨¥B=`¨58C¨63¨;/,T6/¢3¨,¥, 0'¥58 4/,¦ 5833¨¢e=?33 © /¢¨¢ 583¨T'+ J-¢3¨,'L58*0'5!( I6¨¥2582-( 52,:0¥2T /2¦ *¦(*¥, ] -;¥8¨¦ © /,0 583gTI :e0¦,¥2¥8¨@ I¥2/ ,6(3 !/,' Q" 3¨058¨ q+ ¦-m§¢,/,589E2¨ 52,: ,¥8¨ 1¥2¢¥c58 ¨¥c"( 2"¥2j @58=??=B0T6¥,+ ¥25, 7 0'¥4 0520C"*0'¥2¥2,¥;58¦(*¦K58 ;""3 *C# 0¦=[0'520C52\/ Q9 " 3¨058¨¦ p/¢¨¥8¨ ¥,40/2y¥8( /,/,¥2¥8¨!" "¢3 ¹" *0'¥2!"¢2#$¦ :¥ 8. RELATED WORK /¢,0'¥8 *¦3TZ¥2" ¨¥258¨/052,Y0¦ *0¦3¨T6¥8¨¥! 0J ,/¢,0'¥8 *a3( : À<,¨( ¥!0'0¦"*58¨'J58( 03@ :0'/ ,¥\ 0¦!( ¥2,y :58*6y 9 ¦#f0'520+jG?6(*¥, 58 ) ,¥8¨¦ ! ¢3"*¥>¥2582( /,58( 40@¥2T6¥252, µ58 05<"¢29 6/058¨ Z/,¦( 52¥:52\¨ ¢ 58#$TK0¦ *a" 58¨ Q¨F,X 3 \" 0' #A :¥e¥2" ¨¥258¨/,0'52,y0¦ *0¦3¨T6¥8¨¥Q=?¨58I,0¥2¦ *0¦-3¨TI3¨='¢2 ,0+ 5>¥8"52¥,+j 3¨F¢3¨@0 ¢@s ³6t,vc ,¥2/¢2-WQ58 @R Kjw 9E±'³:¥2T6¥89 ¶ 7 R6,/,¦ *6- T;¥2¢" 0058 ;#( /,58¨¦ *0¦3¨58T: 52; :66(3¨,¥, 58 >,¥8¨¦ 52, !q0 L0'0¦"*58¨'!" 58¨ Q¨F,0'58¨ p¥2T6¥252, ¸#$¦CR£Kjw +fG` C'03 7 ¥2"*0¦052,¥>/,¦ */,2 *¥e0 !033¨¦=>¥>0 k¢^ 52¢ ¥8-3¨:0¦/ ¨52,/,58( 0¥ # 58*C¥2T6¥252, ¨¥C52X0'¨L3¨ J"*0¦(*¥2¥º Z 52¢0/58¨X0" " 39 ¨¥e/, 1 : D I=?¢339E¥8¨ ,K-m§¢/,589E2¨¢ 52,I¥2T6¥252, :¥,+ /,0'58¨ ¥)- T:¦"*58¨ Q¨F *D 3¨T!58 )"¢2#A :0¦ */,98/2¨58¨/,03j"*0¦52¥?# 58 Q0¦"" 3¨/,058¨¦ c+ {X,58*6! '6/,058¨¦ L/,¦( 52¢¥e=?¨58I0 I¢^6"¦9 G? Q¥20' Q" 3 *¦9- 0¥2y 3 º" © 3 J0¦3¨¥2\ ¢3"*¥@/,¦ 583<2( 9 ¢ 58¨03q,/0T1 :,/2*0¦ ¨¥2 0>(*¥2,C52;¨ 58#$TC/,0 U¨ 052¥)#$¦ 58¨ 1d¦'¢2*0i#C58 L0 0" 58¨Z" 58¨ Q¨F,058¨¦ ¥2T6¥252, !+ ?T " 58¨ Q¨F,0'58¨ f+L K0'6¨58¨ f>R6¢3#9E±³X( ¥2,J"¦3¨T6 :2" ¨/X 3 * /2 0 X¥20 Q" 3 *C#,h( ¢ /¢¨,¥; T *0' Q¨/,033gT<58 ;¥2T6¥252, /,0 /,0'/ ,¥Q|$ÀB8¿?¥}?52C0'58*¢ /, 52^ 5898¥2 *¥8¨58¨'º/,¢¨@/¢3¨0¥2¥eU¨¥89 0'0¦"*58¨'¢3¨TL58'52583¨Q¨52¥;¦=? K¦2*,0'+1G?¨¥;-¢ 0¦¨1=?( 3¨ 582- (*58¨¦ *¥:52C¦(¨ C/¢3¨0¥2¥4" ,6¨/,58¨ L0¦ *X 3 ¨ * +DA aR£Kw 9 7 3 m¢3¨TK-: :¦:6 C/¢( 3¨5:=?¨58L/, @"3¨¢29$ ¥2¢52,L 582(*¥8¨'! 9 ±³ " 58¨ Q¨F,,L :58*6 ¥;C *'54/,¦ 520 K '6/,058¨¦ Z/,( 52¢¥,+ ¥2582( :¢ 520'58¨ f+¸e=B,¢¦> p#(*58( I=?2 ;=BJ=?33;3¨,5X58 G?*¢#$'?03¨58 ( R£Kjw 9E±³I/,( 3¨d" 58¨ Q¨F,I0 Y0¦3,0 T 7 / 5833¨X *¥2¢5C :¦X¢^6"¢ ¥8¨I 582(*¥8¨'¹ ¥2582(* 1¢ 52058¨¦ " 58¨ Q¨F,K :,58 6¢¡;¨52¥4/( 52¢29$-*0'¥2,¹" © 3 J :/ 0 ¨¥2 #A43¨ @¨52,J"¢2¨6 ¥@#j58¨ : I ¢@52C/,¦33¨,/,5; :¦b" ,/¢¨¥2 =?¦(3¨!-43¨¥2¥)~,/,58¨'Q#$B¨¢ 58#AT *! 5?,¦¨ ¥4#j0¦3,0 T #$¦ :058¨¦ c+ " 58¨ Q¨F,J/,6 586( ¥4 :0¦ 6 *:¨5e :;6 C/¢( 3¨5;52Q¨ Q" 3¨, :¢ 5 ¡,¾>,/ Q" 3¨058¨ L¦#?0¦ I" 58¨ Q¨F,,I :,58 6I/,( 3¨¹-WQ582¨'¢, {X0¦ TL58¨ :,¥,>=?C#$0/, ¨ @"3¨, 1¢ 52058¨¦ i/¢¨¥8¨ ¥\,'06 * =?* ¨5y/,0¦33¨¥Y0 µ( " 58¨ Q¨F,, :,58 6 =?*'¥2 '6/,058¨¦ =? ,58 ¢:52X 10 6C/,¦ 5833¨¢D ,/¢¨¥8¨¦ *¥:- 0¥2,L 0 L0¦ *0¦3¨T658¨/ /,¦( 52¢`¢^ /,,, ¥?58 458 ,¥8 3¨!¦ D58*e/,033$+j4¦=?¢¦658 ¨¥>¥8¨589 16¢3f¦#c" 0' µ-¢ 0¦¨¦`=` ,58 ¢e52b 5866( /,;069$*6/ ( 058¨ I=B( 3¨X58T" ¨/,033¨TX0¦2¨¥2Q¦ 3¨TD0#$52¢`0 X0¦"" 3¨/,0'58¨ K" *0'¥2 58( *Q" 00' :,52¢¥j52;( ¨ ;,/¨¥8¨ ¥,+>A ¦0¦2¨0- 3¨T58( Q58 ¥8 #$5,?¥8 /,X#;58 !/,0¦33;, C-,58=B,¢ Y58 !5E=?X :,58 6 ¥º 0 " 00' :,52¢¥>"¦',X :;6 C/¢( 3¨5;58 0 I¢^6"/,52,*6(*@52Q( 9 -, y 5:=? ¢ Z58*D/,033¨¢k=?0¥1" 58¨ Q¨F,,>58*X/033¨,X=?¦(3¨ 0'Q¨58*¢>-¢ X 3 ,J 52C58 ;/,033¨@e" 58¨ Q¨F,,X¨52¥2¢3#2+ #A¥2,¢ I6~¢ */,¥b a0" "3¨/058¨ L-*0¦¨¦+ O4¥>=?2 k I58 0¦ Z¢~,/,58¨'X b( 3¨589$3¨,3;" 58¨ Q¨F,0'58¨ p¥2580'52,T+ A L/ 580¥25, 520',54¦"*58¨ @¨F,058¨¦ *¥¦<0 I58*@¥2¢3¨,/,58¨¦ L#j-¢ /2* :0¦2 ¥,+ ¦ 7 ¦(e¥20' Q"3 !52/ ¨h( @033¨¦=>¥4" 58¨ Q¨F,f0¥>=?¢33f0'¥`( " 589 ¢^ 0' Q"3¨' ¨¥2583¨¢¢¦ ¥Q=?¦2 I6¥4 *'5; :,0¥8( C58*1U~¢ */º @¨F,, :,58 6¥e52Q-;¥20 @"3¨,X/ 58 6( ( ¥83¨TK0 \#$0¦23¨T+ 0;"'0 ¦ ¥-W¢*0¦¨¦)-W,58=?¢ C¨52¥?¥252058( "X0¦ *C¥252,0'T:¥2520'52,¥,+ G? e5R"5 { s ³°¦v 0 Q58 ?$?{ 0¦¦0 ( ¥2589$ 9EG?¨ :?/ Q9 03¨T\s °u¦v¨ Q" 3¨, :¢ 52:¥20 Q" 3¨¢9$- 0¥2,:/033 9E/, 52^ 5898¥2 *¥8g58' M6z M M ] " 3¨¢C|$'¢¥8¨ a³+ ¯6};s °'³v<0¦Q0'0¦"*58¨':¥2T6¥252, :¥>#$ 0¦0 +>?58 " © 3 *L Y0J" 6U( /,58¨¦ $Gµ/,' Q"3¨¦+[4D : ¥258052, M M ¥2T6¥252 :¥4 ¨58¨0¦33TI 52¢2"5;0 a0" "3¨/,0'58¨ S0 !3¨052¢@/,' Q" 3¨ 58 05C58*D¦¢2 ,0Y¦#;58 ¨¥!¥20' Q"3¨9- 0¥2Y0" "'0/2p=?0¥:3¨¦= "W¢2#$ 10 /,¢9E/¢2¨58¨/,0¦3?/,6 +jG?*@$?{ Gy( ¥2,¥4 1,58*6C ¦9 ¢ ( p52J2( Y/ 58 6( ( ¥83¨T;0 Y58 05C58¨¥C¥20' Q"3 y52/ 9 M /058¨ a/,¦( 52¢¥e0( : 52,X52:0//, : 160'52Q3¨6" ¥) I :589 ¨h(*!¨¥@¥2520- 3¨!¦:¢",0'52,K2( ¥@#e58*C¥20' :\- */2* 102 6 ¥>52Q582¨'¢ /, @"3¨0'58¨ f+ ,5203¨¥e#<58 ;4'5Rm"W5?/,' Q" 3¨09 =?¨58I58*;¥20' :;¥2,5>#< " (*52¥,+>e=B,¢¦6 C" 58¨ Q¨F,058¨¦ *¥@0 · 58¨¦ I¥2T6¥252, 0; 5?"¦¨ ,+ 62¨¢ D- TQ58 >¥20 Q" 3¨,! 0520;0¦ *: >6,¥j *'5,658*¢#$'6,¦039 ( 052;58 Q¥20' Q"3 !52/ ¨h( ¦ ¥)( ¥2¢#( 3 *¥2¥,+ B03¨0C,5?0¦3$+cs ±vf¥2/¢2- T 0 : 0Q580¦ *¥8" 0¢ 5eT 0 @¨/Q¦"9 · 58¨ @¨F,¢@58 05)"W¢2#$ 1¥4" 58¨ Q¨F,0'58¨ ¥Q0'5)2( 58¨ ::¦ X0: *0'58¨ O) 58 ¢k0,0L#@,¥2,0¦/ p/ ¥8¨¢¥X2( 58¨ :K" 58¨ Q¨F,0'58¨ ¥ - 0T+ T 0 1 ¨58¨033¨TY 52¢2" ,52¥!58 \" ¦0 !> 6¢" 58 05X¢^6" 3¨¨5X ¦02¨0 5X2( 58¨ :L0¦3(*¥,+ B,/,0( ¥2L¥8(*/20¦39 · /( 52¢¥?52)¨ ¢ 58#$T1¥2,/,58¨ ¥?¦#/,6 )/033¨,C*'5 +G? ,¥2 ( ,¥:0C *'5:¥252058¨/033¨Ty ,52¢ @ *0¦-3¨>58 ,¥2D¥2T6¥252, :¥Q" ¦¨ 2¢6,¦ ¥2/,58¨ ¥;0;58 ¢ X¦"*58¨ @¨F,,I0 X=`2¨5252 X0¥>0¦ I¢^ ,/¢( 520- 3¨+ " 58¨ Q¨F,0'58¨ Z" "¦58( ¨58¨,¥Q 5e0¦0¦3¨0- 3¨\=?¨58a¥252058¨/@/, @"9 3¨058¨¦ c+ RU' :!¥2T6¥252 :¥b /¢3( s ® jt´6?t¦®vE s ³®¦v ¨4¥ ,£>¨ P458 ¢j T *0' Q¨/>" 58¨ Q¨F,0'58¨ C,¥2,0¦/ @*0¦'(*¥2Q *¦ 9E¥20' Q"3¨9 |- 0¥2,L d¿)}¢ 0- (*¥!s ³6´,v;|- 0¥2,K¦ L{Xw<}¢f0 Z¿? ¥2¢3?0¦ * 7 - 0¥2y"¦©3 y52,/2 ¨h( ,¥!52I¨¢ 58#ATy0 Y" 58¨ Q¨F,I 3 463)¦ ¥e=?2 Is¨²,±vq=?¨/2I520 m,¥40Q" 058¨0¦3j,¦03( 058¨¦ L0" "'0/2c+ " ¦0 5X¥8"'52¥,+¸( ¢I0¦ * T- ¨[s¨²¦tU1²,³v1¢^6" 3¨ G?* ¥2T6¥252, s ³±¦v>"¦¨ ,¥!0K 1,/ 0 ¨¥2 _52K¥8",/¢#ATd0¦ * · $ " © 3¨¢9E62¨¢ kT 0 Q¨/?,/ Q" 3¨058¨¦ \ \RU/2* :'=`¨5810 @¨ Q9 /,' Q"¥2D02- ¨580TL¢^6" ,¥2¥8¨ ¥!0¦ *L¥2520'52, :¢ 52¥:0'5b2( 58¨ :+ " 3¨, : 52058¨ #B0Q-*0'¥8¨/Q- 3¨6/ X,¦2 *X¦"*58¨ Q¨F058¨ f+ 9 G?*e :0 kU¨¥20'¦0¦ 5201#f58*¥2;52,/ ¨h(*,¥>¨¥>58*0'5?58*TQ¢3¨T ¶ #A58( *0'52¢3¨T 58*>¦2*,0':#$<- 0¥8¨/>-3¨6/2 C, ?" © 3 * ,¢ X" ¦0 : 1¢;6,/,58¨',¥Q52@¨¢ 58#ATX58*;,¨¦ *¥;¦#j/,6 Q52 0¦#$52¢q0" "3¨T b- 0¥8¨/j-3¨6/2 Q ¢2 * ¨¥jt´ ¡ ¦#*58 j¢^ ,/¢( 58¨ -;¦"*58¨ Q¨F,+ 58¨ 1+ ( 58 ¢ :'?58 ,TJ,h( !"'0' : :¢C 52¢'¢ 58¨ 7 P458 ¢j=?2 Cs¨²¦´66t¦±v6 0¥<¢^6" 3¨\ `" © 3¨¢9E6,/,52,C/,' Q9 52a,52 Q *I*¦= 52K58'52583¨¹" © 3 Y52J,6(*/,X¨52¥C¦¢29 " 3¨058¨ p¥2/2 , :,¥@58*0'5b( ¥2C C1 ::" © 3¨,¥:# " ,9 ,0'+`A D/, 580'¥25,*¦(e¥20 @"3 !52,/2 ¨h( ¦ ¥4¦¢2 ,0'!¨¥`3¨¦= ( ¥:2( ¥C# 0 Z0" "3¨/058¨ 0¥:#$,,6- 0/2 d 52a0J/,' Q" 3¨¢X52 *¦(*¦i|ERU,/58¨ Yum}Q58 05C¥20 Q" 3 d/0 y-W!/,¦ 58 6(*¦(*¥,;0¦ * :0¦ 6?-,5252¢`" 58¨ Q¨F,058¨¦ I/¢¨¥8¨ ¥?#$j#( 58(>¢^ ,/(*58¨¦ *¥,+`A ¦( 0/2¨52/,58(:#$¦e0 0" 58¨C" 58¨ Q¨F,0'58¨ L 6,¥4 5)h( 0 6¨58¨ f458 ¢!0¦\#( 33¨TL0( 52 :0'52,d" © 3 y¥2T6¥252, :¥158*0'5 0¦ T\" ¦0 : :4 52¢'¢ 58¨ f+ ( ¥2X580 ¥8"*0¦¢ 5!3¨¦= ¦2*,0'y"¦©3 Y52J¨ Q" ¦X"¢2#$¦29 e0 ¥2¢ Ys ³¯¦vj,¥2/2-,¥@0 a0 0" 58¨ P4¾ 7 · 10 6¥c0( 52 1058¨/?¦"*58¨ Q¨F058¨ D ,/¢¨¥8¨¦ *¥,+ ¢ :0j-*0'¥8¨/-3¨6/2 I¢¡ ³6tCs ³'³vE s °®¦v8 0 s °¦v8+BA k/, 580'¥25,58¨¥>"*0¦9 ] 7 X$¨O ¨:cj /( 52¢Q0/2*,¥;0D58¥8*¦3¨j58 Q-*0'¥8¨/:-3¨6/2 J¨¥4" 58¨ Q¨F,, "¢<#A6/¢(*¥2¥¦ Q( ¥8 *;" © 3 *Q #$¦ :058¨¦ !¦#0 10" " 3¨/,058¨¦ ¦ ¥ 0¦ *a :¦,K52D58*@ *¢^ 5 =?*¢1 ::0'9 ¢^ ,/(*58¨¦ y52! ¢3"Z" 58¨ Q¨F,D58*0'5Q¥20' :C¢^ ,/¢( 58¨ S#>58 C0" 9 ¢¨f£@©¨¢6$D¦,$¢6$ ¦,¥2¥8¨@" 58¨ Q¨F,0'58¨ ¥@04"W¢2#$ 1,+ " 3¨/,058¨¦ c+ e,¢58 ¢3¨,¥2¥, ( >0/2 ¨52,/,58( ;/,0 C->¢^ 52¢ ,!52 0 U3¨X *C"¦©3¨986,/,52Y/, Q" 3¨058¨¦ p¥2/ , :¥¤Á#A1¢^69 À<2*0¦"*¥:58 C=?2 I58 05;¨¥@ :¥25@¥8¨ Q3¨0D52D( :=?¦2 J¨¥@58 05 0 @"3¨q58*:/ 5833¨:/,¦(3¨I(*¥2:/ Q" 3¨058¨¦ y" 3¨0 ¥Q0¦ *X"¦9 ¦# ¨¥2583¨¢Is ³m¼vE+ ¨¥2583¨¢:" ,¥2¢ 52¥:0I/,¦ 58 6(*¦(*¥:" 0' ¦"9 © 3 *D0'520º#g »" ,¨¦(*¥;¢^ /¢(*58¨¦ *¥;¦#j0 k0" "3¨/,0'58¨ <+ 58¨ @¨F,058¨¦ p0/2¨52,/58(C#$ºP)-¢¦ y58 05@033¨¦=>¥ L( "9E52¦9858 ¢9 @ 6(*52MX" © 3 *X #A :0'58¨ Y52C-Q( ¥2,J K" ¦0 ¸,¦"9 G?*:0:0¦3¨¥2! *¦ *0'0¦"*58¨'!¥2T6¥252, 1¥;58*0'54"¢2#$¦ ¸/, @"3¨0¦9 58¨ @¨F,058¨¦ c+ ¨¥2583¨¢1/, /¢3( ,¥@58 05;/,¦ 58 6(*¦(*¥:¦"*58¨ @¨F,058¨¦ 58¨ .¦"*58¨ @¨F,058g I0'5c2( 58¨ :e5240¦¦¨C58*>/,'¥25¦#* 52¢2" ,5209 /0 K" 6U( /,C-,5252¢@/,6 C58*0¦ L/,0¦ K-C0/2¨,L=?¨58L * 58¨ f+?G? ¨¥? */¢3( ,¥;,023¨TC=?¦2 D¥8(*/2X0'¥)58 ;R6 :0¦33¨5203 69E®¯Ks t°¦v / Q" 3¨058¨¦ c>,0¦U3¨¥2¥!#e=? ,58*:"¦©3 K #A :0'58¨ Y¨¥ 0 aRU¢3#g98± ²!s¨²,u¦vj¥2T6¥252, :¥,f0¥;=?¢33j 10 TX#`5260¦T¥¦ ¥ G 0¦0 M M ( ¥2,! k58*43¨0'5252¢¦+?G? ¢;0;¥2' :4 52¢,¥258 !6~¢¢ /,,¥> /,' Q"3¨¥:s.²'³'u °6´vE+ 58 >¦¢0¦330/2¨52/,58(0¦3f,¥8¨¦ D#* ¨¥?0 :¦(B¥2T6¥252, :¥,+j¿?¦ 9 ¥8¨ ¢¦j#$1¢^ 0 @"3¨>58 : 52¢0/58¨ ¥\-,5E=?,¢ Z58 C/, 58¦33¨¢ À<,¨( ¥>¥258(*6¨,¥ 0¦40¦3(*0'52,!58 >¨0- 3¨58TD#f¥2¢3¨,/,58¨';" 9 |$ 10 0}40 !2( 58¨ :1 :,0¥8( , : 52¥:|"¦©3¨¢}¢+ A X ¨¥4 ¢9 58¨ Q¨F,0'58¨ f+ÂO)2 3¨p,5X03$+@s uv4( ¥2,[58 03¨0"WUN * { 52 M M6z ¥8¨¦ cm58¨¥< 52¢0/58¨ C¨¥c-*0'¥2,:¦ :0> :,¥2¥20'?" 526/,¦3 1=?¨/2 h( 0 58#$T@58*j"¢2#$¦ :0 /,"'52¢ 58¨03W# ¥2¢3¨,/,58¨')¦"*58¨ @¨F,058¨¦ <+ 58 L U¨¨6( 03)" © 3 K/, @" ¢ 52¥:0¦:0( 52 :¦(*¥,+ M A G?*;,¥8(3¨52¥@/,¦ © :,K58 05;¥23¨,/,58¨C¦"*58¨ Q¨F058¨ Z*0'¥;58* ¦(e ,¥8¨ ff0 X¦0¦ ¨F,;58 ,0!" 6/,,¥2¥2,¥e58*4" © 3 X0'520 "'52¢ 58¨03152K¥8¨ © /,0 583gTo¦(*58"W¢2#$ _0K©^ G ¥258052,'T M #Ae/, ¥8( Q"*58¨¦ K- T!58 @/, 58¦33¨¢¦+4Oe6 !0Q ,=[¦0 ¨F,¢ 0 @/,0 @,'¢ @0" " 0/2C58 Á"W¢2#$ 10 /,?# ¥2520'58¨/?/,' Q"3¨0'58¨ 58 ,0'Y033¨¦=>¥X03¨52¢2 058¨' " 6/,,¥2¥8 Y#;0¦= " © 3 Y0'520 #$¦43¨ 292( ¹-W¢ */2 :02 ¥,+H¾>0'U 0 62¨¥8 *0¦ Y,5>0¦3$+s °²v =?¨58 ( 5:,h(2 y0X ,=µ"¦©3¨¦+yO>3¨58*¦(*¦ ¨¥2583¨¢D,¦03( 9 ( ¥2,K58 0~ 58( 03>{X0'/ *C52D,¥2520- 3¨¥8Y58 : :0¦^6¨ b( z 0'52,¥j58*>58¨ :>¦¢2 ,0'\¦#*"¢2¨66¨/,0¦33TD¥20 Q" 3 *158*" ¦0 "¢2#A :0¦ */,X¨ Q" ¦, : 5\"'¥2¥8-3¨J- TK 52¢2" ,58 40'58* /( 52¢¦*¨54¨¥) 5e- ¨( ¥;=?*0'54¦"*58¨ Q¨F058¨ ¥:0¦Q62¨¢ I- T 58 0 a/, Q" 3 j/,3¨a :,58 6¥4#$¦;58 CR6ÀKB¿§¢6 :±®D=?¨58J 9 58 ¨¥C¥20 Q" 3 y52,/2 ¨h( >0 y58 ¢¢#$¦!*D6¥º 51,¦03( 9 " (*5>¥8¨F,C²+ 0'52C58*C52,/2 ¨h( ¦ ¥@(*¥2¢#g(3 ,¥2¥,+aA L/ 580¥25,q=?C0:0¦-3¨D52 , :¦ *¥2580'52458 ?¢~/,5¦ :"¢2#A :0¦ */,>¦#" 58¨ Q¨F,0'58¨ ¥>58 05 R6¢20 L,5:03$+es °mtv ,¥2/2-J0¤£ / Q" 3¨058¨¦ i0" 9 §*¢¦E¦,$¢6$ 0¦;U2¨'¢ I- T\¦(e¥20' Q"3¨9- 0¥2¹" © 3 * + 033¨T'¨5?¨¥) 0 " 0/2L(*¥8 03¨0"WUN *I58 05@05252, Q" 52¥@52X0'¨L58 :/,¥252¥@# 7 M 521/, Q" 0;58 4,¥8( 3¨52¥4¦#j58*;5E=?Q¥2T6¥252 :¥>U( Q52@58 ;U~29 T *0' Q¨/:/,' Q"3¨0'58¨ f+ ¥8 C58*@0" "'0/2c0¦ I0" "3¨/,0'58¨ ¶ */,> C3¨0 ( 0¥,58*> :0'58(2¨5ET\¦#f58*>¥2T6¥252, :¥, 58 46~¢¢ 5 ¨¥:"98^ ,/¢( 52,y0¦ *Z58*X/,' Q" 3¨,y¨ :0',¥!0¦!=?2¨5252¢ S52J0 © 3¨:-¢#$¦:58 { 52¢ Q 052,¥,+ *¢ 0!/,' Q"3¨K :,58 6 ] M6z 10. REFERENCES ¨¥; ,, ,LU( 2 *I¥8( -*¥2,h( ¢ 5C¢^ ,/(*58¨¦ *¥:¦#>58 \0¦"" 3¨/,0'58¨ < s¨²¢v OQ+ 9E¾b+ OeU39EG<0- 0520¦-*0¦$c{K+W¿¨¢2 ¨0¦ f¿4+ 9 + w(*¢f + {K+ z 58 4 T 0 Q¨/@/, @"3¨¢e¨¥? *'5?0( 52 :0'58¨/,033¨T! ' m,X0¥¨¥>58 À<02 6f0 + {K+R658¨/ *'58c+ 0'¥25,~,/,58¨'Q/,6 M 7 /0¥2Q a( ;0'0¦"*58¨'\¥2T6¥252 !+;G?*@¥2T6¥252, ¸/2 ,/ ¥e52!¥2,;#B0 ¢ ¢0'58¨ I I0 (*¥2589$ 9EG`¨ 1 0¦¦0:/,' Q"3¨¦+< M M " ,/,' Q" 3¨,¹¨ 10;¦#<58 4 :58*6D¢^6¨¥252¥,+>#c0¦ C¨ :0'Q¢^6¨¥252¥, r¦¢¢ g ¡¦>2;©O*4:cÂ*¦?j;X« ¡£¢D<¦,,rW¢e 58 :¥2T6¥252, ¢3¨6/,052¥Q0¦ *X3 ¥158*:/6Q 52D58*@ *,= { M6z r¡mr¢£Q£@ ¡:¢ ¡§ ¢¦¡6 ¨;,¦¨¡X¢ :2£>¨©¨,£:,$¢6$ 6" 0',¥;t¦®¯¥¤Ut±'¯{X 5803$f¿?0 0 0 :¢ 5,+>#* 4¨ :0'4¢^6¨¥252¥, 58 ) T 0 Q¨/e/, Q" 3¨¢>/ Q9 ªrj ¨e$ ²¦´¦¤*²,± ( *C²,±'±® + ³'³|E¼'}¢*{X0¦TX²,±±'®+ " 3¨,¥;58 ; :,58 6+ M *¦?j;o 6AA¢,¦ s tv 4+ O)3"2 cW¿ +m¾b+ O>52520 0¥8¨ + +m?052¦ c {K+ + (2 m £ M M À<+¿* * + 9 + ¿B $ OQ+W¿`6// $R*+ + + ¦' £ · M 7 · 9. CONCLUSIONS M X*0¦X ,¥2/¢2-W,[58 X,¥8¨¦ [0¦ *y¨ @"3¨, 1¢ 52058¨¦ i#@58 ] {K+*> *fRW+ + )( : :¢3$ +*w¨¢-¢¦ + w¨52 *f{K+ + 7 · z 7 0¦3¨0"6N *DO4 0" 58¨1P)"*58¨ Q¨F058¨ dRUT6¥252, D0:¢ ¢0¦3<0 X¢^69 M {X¢ cG;+ 4' + ¾;+*¾?( ¥2¥2¢33$ +WRU0¦2 '0¦*{K+ + M z M 52 *¥8- 3¨40¦/ ¨52,/,58( 452e¥8(" "5B 3 *>#$,,6-*0'/ 69E6,/,52,C¦"9 RU20 + ¿4+*R ¢" ¢ M z 58¨ @¨F,058¨¦ c+YG? !¥2T6¥252, ¨¥:=?2¨5252¢ Y/ Q" 3¨,52¢3¨TL 0¦¦0B039 M Q+WRm2 ¨¦0¥20 ff0 + *0¦3¨,T+G? 03¨0"WUN *D58(*0¦3 M ] M 3¨¦=? y58 X52,/ ¨h(*,¥X ,¥2/¢2-W,o52a0" "3¨Ty 5D 3¨Ty52K58 :0/2 *+ 6³'±|2²¦}¢Wt¯'¯¯+ ¨§?¸ ¥¦,£@¦ 6§¢© 0¦"" 3¨/,0'58¨ <-( 540¦3¨¥2C52:58*;58( 03j 10/2 Q0¦ *!¨52¥e/, @"9 s ³v 4+*O>3"¢2 f + O)52520¦ *0'¥8¨ + + ?052¦ c OQ+ ¿?6/,/2$ · M M ¢ 52¥,+ :*0¦@",¥2 52,L58*:/(2¢ 5; ¥2520 58¨058¨¦ Y¦#>58¨¥ ] + w¨¢-¦fRW+WRU Q¨58f*0¦ *XG;+ 4'+W Q" 3¨, :¢ 58 #g0 :,=B2 *¢3¨T !¦ I¥20 Q" 3¨¢9$-*0'¥2,K¦ 3 :"¦©3 < ;( 3¨589 · 03¨0¦"6N \ 0¦¦0+ M M " 3¨:¦"*58¨ Q¨F058¨ L3¨,'¢3¨¥,<0¦ *I¥20 Q" 3¨¢9E62¨¢ L¦ 3 \#A,,6-*0'/ 69 :c_<¦r,¢e 6,/,52! 3 . + ?$,¦A$,$¢ ;j2¡2¢£@£QU¡º*¥'¦,$,£@¦¢¤f¢ ¡§*¢¦¡6,¦¤ ," 0',¥4³ ²,°¥¤m³6t¦°<²,±'±± + ¢ @`¨6¨©$¢6$ ¦ À<2#$ :0¦ */ ¥8(3¨52¥K , :¦ *¥2580'52y58 05X3¨¦=`9E¦2*,0'i¥20 Q9 s °v +*{K+ O) ¢¥2¢ fw+ {K+*?/ + 0 fR*+ , :0¦=?05, £ M M · " 3 !52,/2 ¨h( ,¥Q/0 X~,/,58¨'¢3¨TJ62¨;" © 3¨¢9EU,/52,K 3 {K+*¾;+*e¢ F¢ *'¢¦fR*+ 9EG;+ OQ+ wc¢( ¾;+ w+R¨52,¥, {K+*G;+ /, Q" 3¨058¨¦ p# 0¦¦0\" ¦0 :¥,+DG?*10 0" 58¨X¥2T6¥252, !f 9 M 0¦ * ,'6 <¿4+ OQ+ 03¨ ¥8"( ¦c0¦ * +¥K>+ ¢ 3$+ z ] ] ] /3(*6 *!/, Q" 3¨058¨¦ cq I0¦¢0'; 586U( /,,¥43¨¥2¥458 0 L²,¯A¡ ¿? 58 6( ( ¥4"¦©3 ¢;*0¦;0¦33<58 Q/T6/¢3¨,¥4' © ] ¦'¢2*0C0 C¢3¨'¢¥>52520¦3*¥2T6¥252, ["2#$ :0¦ */4/,' Q",58¨58¨' G<,/2 ¨/,03 e52:²±±6´,9E¯²,u'0 ¨¨5203BR6T6¥252, :¥e¾>,¥2,0/2 · =?¨58C58 -¥25<03¨52¢2 058¨'4¥258052¨,¥?/ ¥8¨¢+ 0¦?#( 29 ] ¿?¢ 52¢¦*=>=>=;+ ¥2,0/2c+ 6¨¨5203$+ /,' R6¾>¿4 58 ¢@ , :¦ *¥2580'52,K58 05;0! ;( 3¨5893¨¢3>¦"*58¨ @¨F,058¨¦ Y¥258052T /0 X ¢3¨'¢;- (*¥25?"2#$ :0¦ */4 X-58k¥252058( "X0 X¥252,0'T9 s ¼v {K+*O>2 *¦3¨fR*+ + R602 '0¦ 0 XÀÁ+ R6=?,¢ ,T+ O 7 z ¥2520'52\" ¦0 ¨ :,¥,B/, @",58¨58¨X=?¨58Z58 º-W,¥25:03¨522 *0¦9 /, @"*0¦058¨1¥258(* T!¦#<¥252058¨/@0 X T *0' Q¨/b ¢( 2¨¥258¨/,¥4#$¦ 58¨'¹ ,0'/ Y,¦¨ :+ 033¨T@=?! 0¦I : ¥258052,p58 05 7 3 ¨ * +jA ºf ¦?Wb ! ¦ O*¢¨¹ ¨4¥'¢£@$ ¥20' Q" 3 *I52,/2 ¨h(*¥:/,0 a¢~/,58¨¢3¨TaU2¨'º#A,,6-*0'/ 69E6,/,52, mt¯¯'¯+ ¢ @4 6¢¢¨f 'Q<£>¨©¨¢6$D¢ X¨f£@©¨¦¢6$ 3 1¢3¨'¢2 o"¢2#$¦ :0 /,J¨ @"¦ :¢ 52¥I#C²²+¡ s uv {K+*O>2 *¦3¨{K+ ) 0 X4+ +*¾>T6¦+O) D, Q" 2¨/,03 £ 0¦'¢0'Q0¦ *!( "X52C´¦³£¡\+ ¥258(* T!¦#j¥2¢3¨,/,58¨':" 58¨ Q¨F,0'58¨ f+< E£ ©O!2$,¢¢6$ ¢© G? ¨¥;¥2T6¥252, "¦¨ ,¥;0:x*¢^6- 3¨: #g0¥2582( /,58(@#$e#(*58( ;¢9 D¨ ¦ O*¢¨IX¢ ¡§ ¢¦¡U,¦>¢W ¹q£)¨©¨,¦f,;?¢r¢©©¨,© 6O>(* +t¦¯¯¯ + ¥20/2p Y¦ 3 K¦"*58¨ Q¨F058¨ f+ (*58( X,¥2,0/2Y52¦"¨/¥! 9 7 <£>¨§* ¡ /3(* ;0( 52 :0'58¨/4¥8"/¢¨03¨F,0'58¦ c*" © 3¨¢9E6,/,52,X : :TQ3¨0¦T9 s ´v {K+*O>2 *¦3¨X0 XÀÁ+ +WRU=?¢ *T+*O>"" ,^6¨ :058 X58* 7 ¦(*5j" 58¨ Q¨F,0'58¨ ¥,*¢© *, 1¢ 52¥?52458 ?,/,' Q"3¨0'58¨ I0¦ *0¦3¨T658¨/ /,033 !/ 52¢^ 5?584¨0:¥20' Q"3 + G<,/2 ¨/,03q¾>¢"5B¾>¿ 16¢3$ 0 Y/, ¥8¨058¨ ¦#;3¨0I¥2¢¢k/,6 ,¥\- 0¥2,p tU²´®± f?{ÂG;+ + 052¥2¦ X¾>,¥2,0¦/ a¿?¢ 52¦ ( 3¨TXt¯'¯¯ + M ] M $?{ Q¨63¨,=?0¦4"66( /,52¥,+ >0 58¨/"*0'52;58*0'5?58* 0¦3¨0"6N ] M Oe0¦"*58¨'IP)"*58¨ @¨F,058¨¦ RUT6¥252, =?33)" 3¨0¦TK0X 6,TJ¦3¨\ Z( s ®v +*O>(*¥83¨0¦ * ¢¦{K+*À< 3"¥2q¿4+¿ 0 ;-¢¥,R*+ + M M ~52¥e52Q¨ Q" ' 0¦¦0:¥2¢'¢>"¢2#$¦ :0 /,+ M K'¢¥,0¦ *D4+ @+ ?¢¥8 0+ 0¥25, ¢~,/,58¨'Q T 0 Q¨/ 7 /, @"3¨0'58¨ <+qA j2¦¢ ¡¦?2;©O*>:c¸ ¦?Wb « ¡ ¨ ,¦¢¨¡k¢ Acknowledgments <¦,,rW¢;Xj2¡2¢£@£Qg ¡ºW¢ ¡§*¢¦¡6 " 0',¥;²,°'±¥¤*²¼± ÀÁ 3¨0 ¢3"* 0 @58*0¦ k58* 03¨0¦"6N !52,0' :, ;-¢¥Qs tvf#$e58 ¢;=B2 C ] M 2£)¨©¨,£1,$¢6AA À<¢ *¥2T3¨¦0 g0qtU²¤Ut°C{X0¦TJ²±±u + ,'¢3¨" *Z58*D¥2T6¥252, ( ¥2,y52I/, 6(*/,5C58 ¨¥:,¥2,0/2f+ ] *¦?j;o 6$¢,¦ ³²'|E¼}¢*{X0¦TI²,±±'u+ 58 0 ¨¢ ZR602 '0¦:#$@ ¨¥:¥8(" "¦5:#e58 ¨¥:=?2 + C03¨¥2 z ] 58 0 I?0¦2-*0¦0!¾>T64#$¦4 ¢;¥8( ""W5;#j{X0'5258*=[O)2 3¨%¦ ¥ s ±v + ?03¨0 ¥K>+ ( ,¥252¢=B03¨0 IRW+ ?0 ¢g§ ¨0 + T 0 : O z · · '3¨', :¢ 5: L58 ¨¥Q=B2 +:{!¨/2 0¢3>j(2 m 580 ¥8"*0¦¢ 5; T *0' Q¨/Q¦"*58¨ @¨F,058¨¦ L¥2T6¥252, !+WA 0¦ *L58 C0 T6 :¦(*¥DP;P4ÀBRUwfO ,¨=?¢¥Q" ¦¨,Z¦03( 0- 3¨ ¥8( ',¥258¨ ¥;0 !#$,U- 0/2 X¦ X58 4",¥2 52058¨ a#j58 ¨¥4=B2 + *¦?jb G ¬6¬6¬!<,,2,;Xr¢¡r¢£Q£@ ¡ ( *1t¯'¯¯+ M ¢ ¡§ ¢¦¡U ¨ ,¦¢¨¡k¢ Q2£>¨©¨£1,$¢6$ s¨²,¯v G;+*?0¦33<0 + ¾;+*wc0¦2(*¥,+ 0 /2X",6¨/,58¨¦ J#$¦>#,+ A M r¦¢¢ g ¡¦>2;©O*4:cÂ*¦?j;X« ¡£D<¦,,rW¢e r¡mr¢£Q£@ ¡:¢ ¡§ ¢¦¡6 ¨;,¦¨¡X¢ :2£>¨©¨,£:,$¢6$ 6" 0',¥4³'¯¯¥¤m³²³O)3- ( h(*¢h( 4,=Y{X^6¨/, ªrj ¨e$ t³ ¤ t¼ ( *C²,±'±³ + t¦®|$um}¢ ( *:²±±³ + M M *¦?j;o 6AA¢,¦ s¨²²¢v ¾;+*?66 ¾;+ ( "*520 *0 + R602 '0¦+Oe>¿ £ z · KÁ3¨ @ *0'58. XO)20¦TC?( ¥ ¿B ,/2 ¥4¦ :0 +f · *¦?jb G ¬6¬6¬!<,,2,;Xr¢¡r¢£Q£@ ¡ ( *1t¯'¯¯+ M ¢ ¡§ ¢¦¡U ¨ ,¦¢¨¡k¢ Q2£>¨©¨£1,$¢6$ s¨²¦t,v@¾;+ + ( ¢¦+ s t¼vbRW+ + -'0 +WRU0¦2 '0¦+ © ,XO> *0¦3¨T6¥8¨¥;# £ ¢¡ 7 z ¶ AW?<£)¨g©¨¢6AAX¢ + O)20¦TC0 IP)-m§¢,/,5>¾>¢#$¢ */,¥) aR658 3¨T!GBT", r ©©¨,©¨e¢ ', ¨4¥'¢£QA¤£?¢£>¨©¨¢6$:gX O*£1 ÀÁ 58 ,¥8¨¥,fA 6¨0 0 ¨¥8¨58T<²±±6´6+ wc0¦ *¦(*0',¥,+qA · ¶ ,©O:2$,¢¢6$ ¢© $¢6AA?4¢©¥¦¦ ( @t¯¯'¯+ M *¥£>¨ ¦¢g§£nª G ¬6¬6¬, s¨²,³¦v@¾;+ + ( ¢ 0 !¾;+ + T- ¨ +cO> ! #0¥2582( /,58( b#A £ · "¦©3¨9862¨ K T *0' Q¨/Q,/ Q" 3¨058¨¦ c+j s tuv + '¥83 * 4+ ¦T 0 +R652,¢3¨'+ £ £ M M ¦?f;« ¡£¢6¤j©O* O* 6¢ '¢:¢ ¡§ ¢¦¡6 ¥ ¦ +Oe6¨¥2 ,¥83¨,T'<²,±±'u+ ] q£)¨§ $e¦,$¦A¥;2W,¢6$¢©<,,2,; ¨ ¢, ©B¢¢6$ {X0¦TX²,±'±®+ <£>¨§*$,>¢ ¡§*¢¦¡6,¦ s t´v 4+ 0¦ 5,*{K+ {X6/ {K+*À<3"'¥2q¿ +W¿*0' b-¥,*0 £ s¨²,°¦v@{K+ +*( 2 6 + 9 +*¿ $WRW+ + ¦ {K+*> * £ £ M · 7 · RW+K'¢¥,+ T ¿ O> X¢^6" ,¥2¥8¨':0 *'52058¨¦ 9E6,/,52, · + R602 '0¦ {K+ + RU20 + ¿4+ Rm,U 0¦ z M z T 0 @¨/:/, @"3¨¢;#A ¿4+G</ ¨/03j¾>¢"¦5 Q+ R2 ¨¦0¥20¦ cf0 + 03¨,T'+G` 03¨0¦"6N ! T *0' Q¨/ M ] M G>¾`9E±m´9E¯³¦98¯'³ ¨'¢¥8¨58TD# 0¥8 *'52 f ¢"*0¦52 :¢ 5 ¶ ] · " 58¨ Q¨F¢ !/,' Q" 3¨¢;#$ 0¦¦0+WA M #B¿? @"( 52¢@R6/¢¨¢ /,@0 KÁ ,¢2 f{X0¦+f²,±'±6´U+ :c E¡¡¡ 6¢ '¢ " 0',¥Q²t±¥¤ ²,° ² ( \²±±± + M ?2¢ 6:q¦,,2, s t®v 4+ 0¦ 5,*{K+ ÀÁ 3"¥2'<{K+ {X6/ W¿ +W¿*0' b-¥,*0 £ s¨²¦¼,v@4+ ¿?03¨ ¢¦À<+ ¢33¨¢¦0 XOQ+ K<(*¥2520'/,+ 0¦3(*;"¦©3 + 7 z RW+ + K'¢¥,+O> X,¦03( 058¨¦ K¦#j¥2520',!2( 9E58¨ : M A " 58¨ Q¨F,0'58¨ ¥; T ¿ +WA · O* ¬6©O!2$,¢W¢6AA*¢©6*¥'£)¨ ¦§ £µ r¢ U¡m¦`2; O*e:c ¦"*0',¥et¼¦±¥¤Utu± ,/'+c²,±'±6´6+ · !$,r¢r O$$¢¦§62 *¦?jbV« ¡¡X<¦r,¢eXr¡mr¢£Q£@ ¡:¢ ¡§ ¢¦¡6 ," 0¥;t±'³¥¤m³¯° <²,±'±±+ s¨²,u¦v1¿4+*¿ 0 ;-¢¥>0 + 0¦¦+*{X0 6 \" ( · ¶ ¨;,¦¨¡X¢ :2£>¨©¨£1,$¢6$ -m§¢,/5898¦2¨¢ 52,!3¨0¦ *¦(*0',¥4" 0/,58¨/03$+qA s t±v + ' + ,0 ff¿4+ 0¦2,525,*0¦ *I¿4+ ¿*0' b-W¢¥,+ £ £ · M · :c ÀÁ¦©3¨98¦(¨ ,J/,¢¨;/¢3¨0'¥2¥)" ,U¨/58¨ f+jA <¦,,rW¢eL?$,$,$¢ ;r¡mr¢£Q£@ ¡:*¥'¦,$,£Q¦¤ ," 0',¥Q² ¤*²¼U e¦*+c²,±'±²'+ ºf ¢ ¡§ ¢¦¡U,¦¤¢ @`¨6¨©A¢¢6$¦*¦ t¦u|2²'²¦}¢+ <¦,,rW¢;LB¢¦,j¢$,$ bj2¡2¢£@£@ ¡Q*¥'¦,$,£Q¦¤ ¦" 0¥Q²,¯'®¥¤ ²¦t³ P4/,5,+ *¦?jbY 6$¢,¦ ¢ ¡§ ¢¦¡U,¦¤f¢ ;`¨6¨©A¢¢6$*¦ ²,±'±6¼U+ s¨²¦´,v@À<+À<+ ¿*0¦ * fRW+ O@+*{X0 3 6' + + ¿B ¢ f*0¦ * +* :¢ ] ] + 4=?(f+ ÀÁ¦©3¨¢9E¦(¨ ,K0¦(*52' :058¨/4 3 *C¢^6" 0 ¥8¨ X#A ] s ³¯v + + 40¦ *¥2 c+ £ M ¿d"'0' :¥,+ N 4 6¢¢¨f '?*¥'¦,$,£Q¦f,@©O* ¨e¥¢£@$ +6À< 58 ,¥8¨¥, · 2, ¢2¤§Cj2¢6¦$;¢ ¢¨ ,¢$, tt6|E¼} ³°± ¤6³'u±{X0¦TX²,±'±6t6+ £?§ * g£:C¨f£@©¨¦¢6AAX24j2¡2¢£@¦ ¿?02 ,¨¢9E{X¢33¨¦ ¨¥8¨58Tj²,±m´°+ ¶ s¨²,®¦v@{K+ ¿B¨2 ¨0¦ + 9 + w( ¢f*0 + {K+ RU58¨/2 58f+ £ M s ³²¢v + 3¨F3¨+ ¶ ÀÁ0'/,58¨/¢ P 0¦0 ¢ T *0' Q¨/ M6¶e· M ¶ · 4 6¢¢¨f 'Q¨fAg£Q©¨¦¢6$e,4W© £B¢,©g ¡ N + P)"*58¨ @¨F,058¨¦ *¥,+qA ¨¡¢O!Bg,£:¢W¢ $©O ¨©¨r¢6$¢¥;j2¡2¢£@£Qg ¡ ÀÁ 58*¥8¨¥,fRU520¦ #$¦ ¨¢¥8¨5ETO)( +f²,±'±°+ · ¶ *¦?Wb G ¬6¬6¬!<¦r,¢e r¡mr¢£Q£@ ¡QW¢ ¡§*¢¦¡6 ¨ ,¦¢¨¡k¢ :2£)¨©¨,£1W¢6$ ( @t¯'¯¯ + M s ³6tv + 3¨F3¨Q0¦ * + *'0¦+ ¾)/, /¢3 !,¥8"W ¥8¨¢ ,¥2¥ ¶ · ¶ =?¨58X"¢2#$¦ :0 /,; X"( ;-m§¢,/5898¦2¨¢ 52,X3¨0 ( 0',¥,+ s¨²,±¦v1¿4+*¿?¦ *¥2¢3q0 + 4 3$+*O['¢ *03<0¦"" 0'/ X#A 7 2( 9E58¨ :@¥8",/¢¨0¦3¨F,058¨¦ y0¦ *C¨52¥40¦"" 3¨/,058¨¦ L52C¿4+ A :c 2¢*¦¢6¦AA*¦?Xj2¡2¢£@£@ ¡:¢ ¡§*¢¦¡6,¦>¢ *²,® |$°6} ³6¼'¼ ¤6°'¯¯ (3¨TI²,±±'u+ M *¥¦$,£Q¦ <¦,,rW¢¨£?¢r C2; O*8G6r @ºf s ³³v ¾;+ + 46¦ =?0¦T!0 !{K+ OQ+ 4, + ¨¨5203 I¢¡ ³6t M · 7 *¦?jbe8*¦q: *¥'£)¨ ¦§ £iX, ¨©¨,¦e2 ¦" 0¥Q²,°m¼ ¤ ²¦¼u 0¦ c+f²,±±'u+ M ¿? ;- *X b( 3¨058¨¦ K0¦ *C- 0TX580¦ *¥2¥83¨0'58¨ f+ r¡mr¢£Q£@ ¡QW¢ ¡§*¢¦¡6,¦ ¨e¨¡$$¢© 6± |2²¦} ³¥¤ ²¦tU 0 f+c²±±6´6+ M s t¯¦v@G;+*R*+*À<+ K>+¿?2"¦058¨¦ c+fR6ÀKB¿ {X±®1?¢ / :02 ¥,+ M6z O*$¢© 6§¢© 5258" ¦=>=)=;+ ¥8",/+ A'¥2£8§6 :±® <²,±±'®+ s ³°v G?* 0¦¦0:4'52¥8"5>"¢2#$¦ :0 /,@¢ Q0¦/ ¨52,/,58( + M ¨52Q" 0"¢ 0¦0¦3¨0- 3¨:05 ] s tU²v@¾;+*¿?T658¦ c + ¢20 52 4+ + ¾>¥2 c{K+ Q+ :0¦ c M 7 ] 5258" E§¢0¦¦0+ ¥8( f+ / ,"66(*/52¥ '52¥8"65 =? ¨52¢"0"W¢+ 52 Q3$ 0 + + *0',/2 +O) k C/¢¨ 54 :,58 6\#Ae/, @"( 58 * 7 O)" ¦+c²±±± + ¥252058¨/;¥8 3¨:0'¥2¥8¨ :¢ 54#$¦ 0 !58 Q/ 583 "¢ ¢ /,@0¦"f+ :c 2¢ ¦,¢6¦$*¦> s ³6¼v G;+*À<+ ¨¥2583¨¢¦+ +'ÀÁ · ²,³|$°m} °m¼U² ¤6°±'¯ <*§ § ¦?r¡mr¢£¸¨fAg£Q©¨¦¢6$ r¡mr¢£Q£@ ¡QW¢ ¡§*¢¦¡6,¦>¢ :*¥'¦,$,£Q¦ 58*¥8¨¥, ¨¢¥8¨5ETX#B¿?03#$¦2 ¨0 < *'c²,±'±± + ¶ ²,±'±²+ s ³uv OQ+ 033$+%K C/¢¨¢ 5 0¦0 { ( ¥2589$ 9EG?¨ ::/,' Q" 3¨058¨ f+ M z M s tt,v + ,0¦ I0 X¿4+ ¿B 0 ;-¢¥,+G<¦=?0¦¥j-,5252¢e 3 * M · A + 9Ew+ 0¦(*6¨5,,6¨52¦ £ M /¢¨¥8¨ ¥4(*¥8 : 3 ¨ *X582¨0¦3¨¥,+fA 2W,¢6$¢¦©c<,,2,4 j2¦¢ ¡¦>2;©O* £ ?¢r¢©©¨,© r O$$¢¦§r,¦?¢ X<£>¨©¨¢6$ O* § ¦ :c_<¦,,2,4Xf2*Y¢W © §¦$¢© "*0',¥ t¯m¼ ¤ t6²¦t6fP4/,5,+²,±±'®+ U" 0',¥et´¦³¥¤ t¦®6t6fP)23¨0 w ( 7 M r¡mr¢£Q£@ ¡K« ¡ ²,±'±°+ s ³6´v {K+*wf, Q0¦ *DÀ<+*wc+ T 0 Q¨/:¥8"W,/¢¨03¨F058g K I58 · 0- ( ¥;¥2T6¥252, !+ ³'¯|$³',¥} ² ¤ ¼6 7 s t³¦v + 583¨¢#$¥40¦ *IPQ+ Oe,¥2¢ f+ 3 X#j58( 03j :,58 6 ¥,+ · · :c_<£>¨§ Ag ¡Q*§ ',¥¦ RU"*5,+<²±±® +*O>58¨/¢3¨:t¦³+ A O*6E£ ©O §r¢¨*¢I<¦,,rW¢;LB¢¦,j¢$,$ *²±±'±+ r¡mr¢£Q£@ ¡ s ³®v ¾;+*{X023¨5,f¿ + ¿? ¥2¢3$0¦ *DÀÁ+ ? 5,+%K C/¢¨ 5 s t°¦v@w+ À<+ ¢( 52¥2/ I0¦ *XO@+ {K+R6/ ~ :0¦ c+ · ¨ Q" 3¨, :¢ 520'58¨ L¦#<58 :R6 :033¨520¦3 69E®¯X¥2T6¥252, !+WA r¦¢¢ g ¡¦>2;©O*4:cÂ*¦?j;¸« ¡¡X<,,2,4 E£E6 O r¡mr¢£Q£@ ¡:¢ ¡§ ¢¦¡6 ¨;,¦¨¡X¢ :2£>¨©¨,£:,$¢6$ 4**§ ¢©6:cÂ*¥'£)¨ ¦§£I©O*;, ¨©¨,¦>2 "*0',¥ t® ²¤ t¦±6t6<²,±±'±+ ¦" 0¥;t±m´ ¤m³¯6t6 0¦ c+f²,±®'°+ M r¡mr¢£Q£@ ¡QW¢ ¡§*¢¦¡6,¦ s ³±¦v@{K+ À<3¨,5252 +*¾;+ K< *¦3¨¢¦0 X{K+ + 00'¥8*6 +52/,/ O · 7 ¥2T6¥252, µ#$¦)#A0¥25,6x*^6-3¨f0 ! ¨ 93¨¢3BT 0 @¨/Q/,6 ¢ ¢0'58¨ f+fA j2¦¢ ¡¦>2;©O*e:cÂ*¦?Wbk« ¡ <¦,,rW¢eXr¢¡r¢£Q£@ ¡:¢ ¡§ ¢¦¡U ¨;,¦¨¡X¢ 6" 0',¥;²,¯± ¤*²tU²wf0¥ ,0'¥, z 2£)¨©¨,£1,$¢6AADªrj ¨e$ 4,¦0'0 c²¦¼¦¤*²® ( :²,±±m´U+ ³6t6|E¼}¢ M *¦?Wbp;6$,¦ {X0¦T¹²±±m´U+ s °¯¦v@{K+ À<3¨,5252C0 + R602 '0¦+ w ,0 ¥2/,0 X¨¥252¢ z 033¨6/,0'58¨ f+ :c 2¢*¦¢6¦AA*¦>Xj2¡2¢£@£QU¡ tU²'|E¼} ®±m¼ ¤6± ²,³ fRU¢" 5,+c²±±'±+ ¢ ¡§ ¢¦¡U,¦B¢ :*¥¦$,£Q¦ s °²v@¾;+¾>0'U 0 62¨¥8 *0 f Q+ §¢0¦T 62¨¥8 0 ffw+ + ¦ f*0¦ * z M OQ+ R¨0'¥8(- 0 10 ¨06 !+cO>/ ¨52,/,58( 03<¨¥2¥8( ,¥> 0¦0 M 2( 58¨ 1Q¥2T6¥252, 1¥,+A r¦¢¢ g ¡¦>2;©O*b* U©O 2$,¢¢6$ ¢©6*¥'£)¨ ¦§£ ¨¡¢O\?,g,£:¢ '"*0',¥e³®6´¦¤6³'±® <£>¨§*$,B r O$$¢¦§r;ª eb, G<( 3¨( ¥2 0¦ */,' 0 f+ t¯'¯¯+ 7 M s °6t,v@{K+ RU¢20¦ * *¾;+ ? 0¦=?¢ '0¦WRW+ {!¨6 6~<f0 !{K+ (" 520+ £ (*0'¥89E¥252058¨/@/, Q" 3¨058¨¦ K 0¦¦0+ ¡ M :c_<¦r,¢ KB¢¦,j¢$,$ bj2¡2¢£@£@ ¡:*¥¦$£@¦¤c¢ ¡§ ¢¦¡6¦¤ 'P4/,5,+t¦¯¯¯ + ¢ ;?¨6¨©$¢¢6$ ¦ s °³¦v@G;+*R( 0 0 10G;+ P40¥20¦=?0¦0 {K+*G<0 m¢( / $G;+ 0¥8( {K+ 0=B0 ¨52 + ¥8 ¨F,0 6$fQ+ ' :052¥8(f*0¦ * G;+¢e0 '0520¦ $+fP4'¢¨,=p#j58 @?{ 0¦¦0 ( ¥2589 9EG?¨ : M M /, @"3¨¢¦+ 6³'±|2²¦}¢Wt¯'¯¯+ ¨§B ¥¦,£@¦ 6§¢© s °°¦v ¦3¨0 {X0¦2 ItU+¨²+ z ¨¤¨©£¤£¦¥§¥©¨©¨§¨ §¦¥©§© § §¨§ ¥¨ § §© © ¨§ ¥6+ ¢ ¢ ¢ ¦ ¦ s °6¼,v + 03¨,T+ T *0' Q¨/:¦"*58¨ Q¨F058¨ 58¦(*¦I58*4( ¥2;# M ] · 0( 52 :0'58¨/b2( 58¨ :@¥8",/¢¨0¦3¨F,058g f+<{K+ ¢ +¨ {X0¥2¥20'/ 6( ¥2¥2,5252¥; *¥258¨58( 52@#jG<,/2 3¨'T{X0¦TX²,±'±± + s °u¦v + 03¨T+O "W520- 3¨@¥20 Q" 3 *¦9$-*0'¥2,J" © 3¨¢4#$¦ 0¦¦0 M ] M 58(*0¦3< :0'/ ,¥,+< :c G ¬6¬6¬ 6¢ '¢X?2¢ 6 ( @t¯'¯¯+ M <¦,,rW¢ s °6´,v@4+ 92R*+ 0¦ * R*+ 9E{K+ {X6 ffR*+*À<02 + wc, R*+*wf, M + À<02 + ¿ + ¿6( * fRW+ ¨ ! +¥K<-/¢¨¦3(cf0 M K)+ O>3¨52 :0 f+*wf0G>G< O 0¦¦0 { ( ¥2589$ 9EG?¨ :;/,' Q" 3¨¢ M z M =?¨58!#$0'¥25)0¦ *D C/¢¨ 5),¦¨¥252¢;0¦33¨6/,058¨¦ <+< 2$,¢¢6$ ¢©<¦r,¢e!B¢2¢©©¨,© 4r OA¦§r¦B¢ £ 6P4/,5,+²±±± + <£>¨©¨¢6$ O §*,¦ s °®¦v IQ+ *0¦ * c+ 0 @+ 3¨T' +e+¿* c 0 !{K+ + £ ] M · RU @¨58c+WRUT6¥252, ¥8( ""¦5)#$¦e0( 52 :0'52,!"¦©3 !0¦ * " 58¨ Q¨F,0'58¨ f+fA r¦¢¢ g ¡¦?2e O*6E6©O:*¥£>¨ ¦¢g§£i mP)"¢0'58 * ¨ ,2¢6 ¡Q ¥¦,£@¦>, ¨©¨,¦eª8< ¡ RUT6¥252 :¥>¾)¨,=;³²|E¼'}¢" 0',¥;²¦¼ ¤Utu fP4/,5,+ ¼ ¤6®X²±±6´6+ APPENDIX G<0¦-3¨¥\³I0 L°J¦¨X58 !0¦-*¥2¦3(*52X¢^ /¢(*58¨¦ p0'520¹#AC58 !¥2520¦58("Z0 y¥2520 T98¥2520'52!,¨ 1,¥Q#$¦C58*C-*0¦C/2*0¦52¥Q"¥2¢ 52,d R6,/,58¨¦ *¥;u +t@0 !u+ ³+ ¡6 -2"£1$B ¢C./ ¡6§/ ¡ ¡¢ ¤£&2*¢(¥ H()-2 ¥46 ¥46 ¥46 ¥46 ¥46 ¥46 $BD*¢( $?D*¢(¢¡ ¡ t¦°+ ±®m´ u+ ¯±u ´6+.²¼u ®+ ®u'® u+ uu¯ ¼6+ ®'u¯ u+ ¯6´6² ¼6+ ±'³± ¼U+ ±6¼¦³ §¨§¤£ ¦ © © ¦ © © ´U+ ³±'® ®+ ±6¼¼ ²¦t6+ ±m¼´ t6²+ °6´¦³ °+ ±u¯ ¼6+.²¼® ¼U+ ®6t¦° ¼6+ ³'¯6¼ °+ ®²¯ ¥ ²+ ±¯m´ tU+ ¼®6t ° +´¦®® u+ t®mt ²+ ´u² ²'+ ±'®6t tU+ ³6¼'¼ ²'+´¦°6¼ ²+ ´³ ² §¦§ u+ ³³ ² ²°+ u6t´ tU²'+ ¯'u6´ ³ ²+ ®°'° ¼U+ ¼³³ ¼6+ ®mt³ u+ t±m¼ ¼6+ um´¯ ¼U+ °²t ¦ §¤£ ¦§ ¡¦¥ § t'¼U+ ´±'° ´U+ ´³u ± + ° ²,³ ²°+ °6´'t ´U+ ®³® ´6+.²¼³ ±+ ´U²° ® + ¯mt® ´U+ ±6t't §¦¨¦ ¤¨ u+ °°'° °+ ³®¯ ´6+t'tU² ²tU+ ³6¼'´ ³+ u6tU² ° +t¦uu u+ ´t'´ ³ +¼'t° ³+ ´´¦u § ²'²+ ®6´¦± ²¯+ ³²,® ²,° + ¯'u³ t¦¯+ ¯²¼ u+ ±³³ ´6+ ¯'±6t ´U+ ¼¼¦° ´6+.²³± ´U+ tU²u ¦¨ § £¦¨ §¨§¤£ ¥¤ ²tU+ ®¯'® ²u+ ´°¯ ³³ + ¯ ²,° ®'³+ ¯®'° ²¯+ °uu ° + u'³± °+ ±³m´ ° +´¦¯± °+ u6´'t ¦ §¦¥¤§© § ³'¯°m¼ °'°6t± °°'u® °'³²t °'¯¯6´ °²¼¼ °¯ ²,± °²®6¼ °mt¯'° §¦¥¤§© § ¥ 4 ¡ #% ¢$B-2"£ # ¡ *¢12 -2"£1$B ¢C¥/?(J- *¢12 /* *¢D& £!%()$B )8 £/¢D*/? + ()- /£"£#.- £/¤£ ¤%"£ &2* £ (,*+1 D-(*/ #¢¡ $B£// !¥£/ & /£"£#%- £ £ ¥ !¥ (,/ £** ¥¤¨ ¡ -2"A1$B ;C¥/ ¡6§/ ¡ ¡¢ ¤£¥&2*¢(¥ H()-2 ¥46 ¥ 46 ¥46 ¥46 ¥ 46 ¥46 $?D*¢( $BD*¢(¢¡ ¡ §¨§¤£ ¦ © © t'´u+ ¼®'u ¼³ +´¦®± °²'+ °mtt ³6´U+ ±°m¼ ¼³ +t¦³6¼ °¯ +¼¦®6t ³6´U+ u°'u ³m´U+ ®®mt ³6¼U+ tt6² ¦ u³+ ±®'± ³° +´¦³¯ t± + ¯ ²,® t±+ ¯6t¦³ ³° +´¦¯® t± + ¯'°¯ t±+¨²,®m¼ t¦®+ ®²³ ²,u+ ¼± ² © © ¥ ²¯6tU+ ®u'³ ´u +t¦³6¼ ´¼6+´¦±¯ ´¼U+ ±u'° ´¯ + ¯'±¯ ´¯ + u'u³ u±+ ®®m¼ ´¦¯+¨²,±'³ u6¼U+ ®±'® ´³+ °u ² ±6t6+ ±'¯6¼ °° + ¯'¯° °³+ ±¯'® u6¼6+ u'®6´ °6t6+ ®'u± °6tU+ u°'± ³'±+ °6t'¼ ³±+ ¼¼¦® §¦§ ¦ §¤£ ¦§ ¡¦¥ § t¦³6¼U+ tum¼ ³6´6+t6²,³ t® +t¦³u t¼U+ ±±m´ °³ +.²´¼ ³6t6+¼6²¦´ ³¯+ ³6¼'´ t¦®+ t´6² t³+ ¯°'³ §¦¨¦ ¤¨ ¼´U+ ¯²´ ²,u + ¯m¼¯ ®+ ®³'± ®+ ±°'¯ ²¦¼6+¼'´t ±+ ´U²± ±+ ³6¼'¼ ²'²+ ³6´¦± ²¦tU+ ¼U²'² § ®6´U+ ±6´¦¯ °¯ + ±m¼U² ³± +´'tu ³®+ ¯³'u °³ +¼'tu °¯ + u'¯³ ³±+ u6¼¦® ³'®+ ®6´'´ ³u+¨²,¯m´ ¦¨ § £¦¨ §¨§¤£ ¥© t¦u6´U+ ®6t't ³°m¼U+ ¼¼'´ ²,¯6´6+ ¯'¯° ²¯u+ ´°m¼ t¼'´U+ ´´¦³ ²¦tu + ¯'®³ ²t°+ t´¦¯ ²,¯m¼U+ t±mt ²,¯²'+ u'°± ¦ §¦¥¤§© § ³³6´'¼ ³u'±6´ ¼U²³° ¼U²,±'° °m¼³m¼ °um¼t °±±'° ¼'t´'t ¼¯'¯¯ §¦¥¤§© § ¥ 4 ¡ #% ¢$B¥-2"£ #¢¡H*+12 -2"£1$?¥ ¢C¥/6()- *¢12 /*£ £ © ¡ /* *? £!%()$B ) £/¢D*/ ¥ ()- /£"£#%- £/¤£% ¤%"£ &2* £ (,*+1 D-(*/ #¢¡ $B£// !¥£/ & /£"£#%- £ £ ¥ !¥ (,/ £** ¥¤¨