330 return GCConfig::is_gc_selected_ergonomically();
331 WB_END
332
333 WB_ENTRY(jboolean, WB_isObjectInOldGen(JNIEnv* env, jobject o, jobject obj))
334 oop p = JNIHandles::resolve(obj);
335 #if INCLUDE_G1GC
336 if (UseG1GC) {
337 G1CollectedHeap* g1h = G1CollectedHeap::heap();
338 const HeapRegion* hr = g1h->heap_region_containing(p);
339 if (hr == NULL) {
340 return false;
341 }
342 return !(hr->is_young());
343 }
344 #endif
345 #if INCLUDE_PARALLELGC
346 if (UseParallelGC) {
347 ParallelScavengeHeap* psh = ParallelScavengeHeap::heap();
348 return !psh->is_in_young(p);
349 }
350 #endif // INCLUDE_PARALLELGC
351 GenCollectedHeap* gch = GenCollectedHeap::heap();
352 return !gch->is_in_young(p);
353 WB_END
354
355 WB_ENTRY(jlong, WB_GetObjectSize(JNIEnv* env, jobject o, jobject obj))
356 oop p = JNIHandles::resolve(obj);
357 return p->size() * HeapWordSize;
358 WB_END
359
360 WB_ENTRY(jlong, WB_GetHeapSpaceAlignment(JNIEnv* env, jobject o))
361 size_t alignment = Universe::heap()->collector_policy()->space_alignment();
362 return (jlong)alignment;
363 WB_END
364
365 WB_ENTRY(jlong, WB_GetHeapAlignment(JNIEnv* env, jobject o))
366 size_t alignment = Universe::heap()->collector_policy()->heap_alignment();
367 return (jlong)alignment;
368 WB_END
369
370 WB_ENTRY(jboolean, WB_SupportsConcurrentGCPhaseControl(JNIEnv* env, jobject o))
|
330 return GCConfig::is_gc_selected_ergonomically();
331 WB_END
332
333 WB_ENTRY(jboolean, WB_isObjectInOldGen(JNIEnv* env, jobject o, jobject obj))
334 oop p = JNIHandles::resolve(obj);
335 #if INCLUDE_G1GC
336 if (UseG1GC) {
337 G1CollectedHeap* g1h = G1CollectedHeap::heap();
338 const HeapRegion* hr = g1h->heap_region_containing(p);
339 if (hr == NULL) {
340 return false;
341 }
342 return !(hr->is_young());
343 }
344 #endif
345 #if INCLUDE_PARALLELGC
346 if (UseParallelGC) {
347 ParallelScavengeHeap* psh = ParallelScavengeHeap::heap();
348 return !psh->is_in_young(p);
349 }
350 #endif
351 #if INCLUDE_ZGC
352 if (UseZGC) {
353 return Universe::heap()->is_in(p);
354 }
355 #endif
356 GenCollectedHeap* gch = GenCollectedHeap::heap();
357 return !gch->is_in_young(p);
358 WB_END
359
360 WB_ENTRY(jlong, WB_GetObjectSize(JNIEnv* env, jobject o, jobject obj))
361 oop p = JNIHandles::resolve(obj);
362 return p->size() * HeapWordSize;
363 WB_END
364
365 WB_ENTRY(jlong, WB_GetHeapSpaceAlignment(JNIEnv* env, jobject o))
366 size_t alignment = Universe::heap()->collector_policy()->space_alignment();
367 return (jlong)alignment;
368 WB_END
369
370 WB_ENTRY(jlong, WB_GetHeapAlignment(JNIEnv* env, jobject o))
371 size_t alignment = Universe::heap()->collector_policy()->heap_alignment();
372 return (jlong)alignment;
373 WB_END
374
375 WB_ENTRY(jboolean, WB_SupportsConcurrentGCPhaseControl(JNIEnv* env, jobject o))
|