< prev index next >

src/share/vm/gc/shenandoah/shenandoahHeap.cpp

Print this page
rev 12638 : imported patch heuristics.patch


2153   NMethodOopInitializer init;
2154   nm->oops_do(&init);
2155   nm->fix_oop_relocations();
2156 }
2157 
2158 void ShenandoahHeap::unregister_nmethod(nmethod* nm) {
2159 }
2160 
2161 void ShenandoahHeap::pin_object(oop o) {
2162   heap_region_containing(o)->pin();
2163 }
2164 
2165 void ShenandoahHeap::unpin_object(oop o) {
2166   heap_region_containing(o)->unpin();
2167 }
2168 
2169 
2170 GCTimer* ShenandoahHeap::gc_timer() const {
2171   return _gc_timer;
2172 }



























2153   NMethodOopInitializer init;
2154   nm->oops_do(&init);
2155   nm->fix_oop_relocations();
2156 }
2157 
2158 void ShenandoahHeap::unregister_nmethod(nmethod* nm) {
2159 }
2160 
2161 void ShenandoahHeap::pin_object(oop o) {
2162   heap_region_containing(o)->pin();
2163 }
2164 
2165 void ShenandoahHeap::unpin_object(oop o) {
2166   heap_region_containing(o)->unpin();
2167 }
2168 
2169 
2170 GCTimer* ShenandoahHeap::gc_timer() const {
2171   return _gc_timer;
2172 }
2173 
2174 class ShenandoahCountGarbageClosure : public ShenandoahHeapRegionClosure {
2175 private:
2176   size_t _garbage;
2177 public:
2178   ShenandoahCountGarbageClosure() : _garbage(0) {
2179   }
2180 
2181   bool doHeapRegion(ShenandoahHeapRegion* r) {
2182     if (! r->is_humongous() && ! r->is_pinned() && ! r->in_collection_set()) {
2183       _garbage += r->garbage();
2184     }
2185     return false;
2186   }
2187 
2188   size_t garbage() {
2189     return _garbage;
2190   }
2191 };
2192 
2193 size_t ShenandoahHeap::garbage() {
2194   ShenandoahCountGarbageClosure cl;
2195   heap_region_iterate(&cl);
2196   return cl.garbage();
2197 }
< prev index next >