[Vm-dev] Measuring allocations

Jan Vrany jan.vrany at fit.cvut.cz
Thu Jun 1 08:17:34 UTC 2017


Hi folks, 

Having a Spur VM, I wonder how to measure heap allocations made 
by a process executing a particular block, from within the image. 
For example, let's have following block: 

[
   | a |

   100 timesRepeat: [
      a := Array new: 100 
   ]
]. 

When run, this block allocates - if I'm correct - some 100 * (<object
header size> + 4*100) bytes. 

Note that: 
 * Ideally, I'd like to exclude allocations made by other threads 
   but having allocations made by all threads would be OK too. 
 * Block can span multiple scavenges even oldspace collects. 
 * As shown in the example above, I need to take garbage into 
   an account.

How to best measure this? 

Thanks, Jan







More information about the Vm-dev mailing list