< prev index next >

src/share/vm/jfr/leakprofiler/sampling/objectSampler.hpp

Print this page
rev 9464 : PR for JDK8


  60   bool _dead_samples;
  61 
  62   // Lifecycle
  63   explicit ObjectSampler(size_t size);
  64   ~ObjectSampler();
  65   static bool create(size_t size);
  66   static bool is_created();
  67   static ObjectSampler* sampler();
  68   static void destroy();
  69 
  70   // For operations that require exclusive access (non-safepoint)
  71   static ObjectSampler* acquire();
  72   static void release();
  73 
  74   // Stacktrace
  75   static void fill_stacktrace(JfrStackTrace* stacktrace, JavaThread* thread);
  76   traceid stacktrace_id(const JfrStackTrace* stacktrace, JavaThread* thread);
  77 
  78   // Sampling
  79   static void sample(HeapWord* object, size_t size, JavaThread* thread);
  80   void add(HeapWord* object, size_t size, traceid thread_id, JfrStackTrace* stacktrace, JavaThread* thread);
  81   void scavenge();
  82   void remove_dead(ObjectSample* sample);
  83 
  84   // Called by GC
  85   static void oops_do(BoolObjectClosure* is_alive, OopClosure* f);
  86 
  87   const ObjectSample* item_at(int index) const;
  88   ObjectSample* item_at(int index);
  89   int item_count() const;
  90   const ObjectSample* first() const;
  91   const ObjectSample* last() const;
  92   const ObjectSample* last_resolved() const;
  93   void set_last_resolved(const ObjectSample* sample);
  94   const JfrTicks& last_sweep() const;
  95 };
  96 
  97 #endif // SHARE_VM_LEAKPROFILER_SAMPLING_OBJECTSAMPLER_HPP


  60   bool _dead_samples;
  61 
  62   // Lifecycle
  63   explicit ObjectSampler(size_t size);
  64   ~ObjectSampler();
  65   static bool create(size_t size);
  66   static bool is_created();
  67   static ObjectSampler* sampler();
  68   static void destroy();
  69 
  70   // For operations that require exclusive access (non-safepoint)
  71   static ObjectSampler* acquire();
  72   static void release();
  73 
  74   // Stacktrace
  75   static void fill_stacktrace(JfrStackTrace* stacktrace, JavaThread* thread);
  76   traceid stacktrace_id(const JfrStackTrace* stacktrace, JavaThread* thread);
  77 
  78   // Sampling
  79   static void sample(HeapWord* object, size_t size, JavaThread* thread);
  80   void add(HeapWord* object, size_t size, traceid thread_id/*, JfrStackTrace* stacktrace*/, JavaThread* thread);
  81   void scavenge();
  82   void remove_dead(ObjectSample* sample);
  83 
  84   // Called by GC
  85   static void oops_do(BoolObjectClosure* is_alive, OopClosure* f);
  86 
  87   const ObjectSample* item_at(int index) const;
  88   ObjectSample* item_at(int index);
  89   int item_count() const;
  90   const ObjectSample* first() const;
  91   const ObjectSample* last() const;
  92   const ObjectSample* last_resolved() const;
  93   void set_last_resolved(const ObjectSample* sample);
  94   const JfrTicks& last_sweep() const;
  95 };
  96 
  97 #endif // SHARE_VM_LEAKPROFILER_SAMPLING_OBJECTSAMPLER_HPP
< prev index next >