Class AllocationRecorder


  • public class AllocationRecorder
    extends java.lang.Object
    The logic for recording allocations, called from bytecode rewritten by AllocationInstrumenter.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void addSampler​(Sampler sampler)
      Adds a Sampler that will get run every time an allocation is performed from Java code.
      static void recordAllocation​(int count, java.lang.String desc, java.lang.Object newObj)
      Records the allocation.
      static void recordAllocation​(java.lang.Class<?> cls, java.lang.Object newObj)  
      static void recordAllocationForceForTest​(int count, java.lang.String desc, java.lang.Object newObj)
      Helper method to force recording; for unit tests only.
      static void recordAllocationForceForTestReal​(int count, java.lang.String desc, java.lang.Object newObj, int recurse)
      Helper method to force recording; for unit tests only.
      static void removeSampler​(Sampler sampler)
      Removes the given Sampler.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AllocationRecorder

        public AllocationRecorder()
    • Method Detail

      • addSampler

        public static void addSampler​(Sampler sampler)
        Adds a Sampler that will get run every time an allocation is performed from Java code. Use this with extreme judiciousness!
        Parameters:
        sampler - The sampler to add.
      • removeSampler

        public static void removeSampler​(Sampler sampler)
        Removes the given Sampler.
        Parameters:
        sampler - The sampler to remove.
      • recordAllocation

        public static void recordAllocation​(java.lang.Class<?> cls,
                                            java.lang.Object newObj)
      • recordAllocation

        public static void recordAllocation​(int count,
                                            java.lang.String desc,
                                            java.lang.Object newObj)
        Records the allocation. This method is invoked on every allocation performed by the system.
        Parameters:
        count - the count of how many instances are being allocated, if an array is being allocated. If an array is not being allocated, then this value will be -1.
        desc - the descriptor of the class/primitive type being allocated.
        newObj - the new Object whose allocation is being recorded.
      • recordAllocationForceForTest

        public static void recordAllocationForceForTest​(int count,
                                                        java.lang.String desc,
                                                        java.lang.Object newObj)
        Helper method to force recording; for unit tests only.
        Parameters:
        count - the number of objects being allocated.
        desc - the descriptor of the class of the object being allocated.
        newObj - the object being allocated.
      • recordAllocationForceForTestReal

        public static void recordAllocationForceForTestReal​(int count,
                                                            java.lang.String desc,
                                                            java.lang.Object newObj,
                                                            int recurse)
        Helper method to force recording; for unit tests only.
        Parameters:
        count - the number of objects being allocated.
        desc - the descriptor of the class of the object being allocated.
        newObj - the object being allocated.
        recurse - A recursion count.