Contributor
SophieK

Improving the VM Profiler


Mentors
Clement Bera, Alexandre Bergel
Organization
Pharo Consortium

Improving the VM Profiler

The current VM profiler is a sampling profiler cadenced at 1.3GHz tracking down where the time is spent in the C code of the VM (for the interpreter and the GC) and in the machine code zone (for the code generated by the JIT). The VM profiler cannot track down precisely where the time is spent when executing the code generated by the JIT. It can track down in which methods the time is spent, but it cannot track down in which part of those methods the time is spent.

Goals

  • Port the VM Profiler to Pharo (it only works in Squeak for the moment)

By making sure the UI stays independent and by patching all the uses of the library OSProcess to make it work in both Squeak and Pharo

  • Get a more detailed profiling

By using the JIT API to map machine code instruction pointer to bytecode program counter, to be able in the end to show in which bytecode range of methods the time is spent instead of only in which methods the time is spent