Class AllocationRecorder


  • public class AllocationRecorder
    extends Object
    The logic for recording allocations, called from bytecode rewritten by AllocationInstrumenter.
    • 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​(Class<?> cls,
                                            Object newObj)
      • recordAllocation

        public static void recordAllocation​(int count,
                                            String desc,
                                            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,
                                                        String desc,
                                                        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,
                                                            String desc,
                                                            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.