Class AllocationRecorder

java.lang.Object
com.google.monitoring.runtime.instrumentation.AllocationRecorder

public class AllocationRecorder extends Object
The logic for recording allocations, called from bytecode rewritten by AllocationInstrumenter.
  • Constructor Details

    • AllocationRecorder

      public AllocationRecorder()
  • Method Details

    • 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.