Pharo VM performance
Clement Bera
Pharo VM performance Clement Bera Myself Clment Bra 2011-2013: - - PowerPoint PPT Presentation
Pharo VM performance Clement Bera Myself Clment Bra 2011-2013: Engineer on the Pharo VM 2013-2017: PhD student Optimisations of the Pharo VM JIT compiler Binary tree benchmark 16 14 12 10 8 6 4 2 0 Interpreter
Clement Bera
2 4 6 8 10 12 14 16 Interpreter 2005 Stack 2009 Cog V1 2010 Cog V2 2011 Spur 2014 Sista future
2 4 6 8 10 12 14 16 Interpreter 2005 Stack 2009 Cog V1 2010 Cog V2 2011 Spur 2014 Sista future
Pharo 5 2016
Code execution GC
scavenges Code execution GC
Loading a 200 Mb Moose Model in 250 Mb image
February April Total time 2 min 1 min 2 sec Time in Full GC 1 min 2 sec Full GC avg pause 15 sec 0.5 sec Time in scavenge 15 sec 15 sec
Loading a 200 Mb Moose Model in 250 Mb image
February April Total time 2 min 1 min 2 sec Time in Full GC 1 min 2 sec Full GC avg pause 15 sec 0.5 sec Time in scavenge 15 sec 15 sec
<- GC tuning gets it down to 5 sec
speculated
1 to: array size do: [ :i | (array at: i) yourself ]. array do: [ :elem | elem yourself ]. array do: #yourself.
1 to: array size do: [ :i | (array at: i) yourself ]. array do: [ :elem | elem yourself ]. array do: #yourself.
2 5 20 87M/ sec 28M/ sec 13M/ sec 3.7M /sec 15M/ sec 21M/ sec 10M/ sec 3.9M /sec 94M/ sec 40M/ sec 22M/ sec 6.5M /sec
1 2 3 4 5 6 A* ThreadRing SpectralNorm JSJSON BinaryTree DeltaBlue Richards TCAP Kmeans Sista Pharo
Smalltalk image Virtual machine Cogit CompiledCode to native code Machine-specific optimisations Scorch CompiledCode to CompiledCode Smalltalk-specific optimisations CompiledCode (persisted across start-ups) native functions (discarded on shut-down) Baseline JIT Optimising JIT