53 #include "gc/g1/concurrentMark.hpp" |
53 #include "gc/g1/concurrentMark.hpp" |
54 #include "gc/g1/concurrentMarkThread.hpp" |
54 #include "gc/g1/concurrentMarkThread.hpp" |
55 #include "gc/g1/g1CollectedHeap.inline.hpp" |
55 #include "gc/g1/g1CollectedHeap.inline.hpp" |
56 #include "gc/g1/heapRegionRemSet.hpp" |
56 #include "gc/g1/heapRegionRemSet.hpp" |
57 #include "gc/parallel/parallelScavengeHeap.inline.hpp" |
57 #include "gc/parallel/parallelScavengeHeap.inline.hpp" |
|
58 #include "gc/parallel/adjoiningGenerations.hpp" |
58 #endif // INCLUDE_ALL_GCS |
59 #endif // INCLUDE_ALL_GCS |
59 #if INCLUDE_NMT |
60 #if INCLUDE_NMT |
60 #include "services/mallocSiteTable.hpp" |
61 #include "services/mallocSiteTable.hpp" |
61 #include "services/memTracker.hpp" |
62 #include "services/memTracker.hpp" |
62 #include "utilities/nativeCallStack.hpp" |
63 #include "utilities/nativeCallStack.hpp" |
294 WB_ENTRY(jlong, WB_GetObjectSize(JNIEnv* env, jobject o, jobject obj)) |
295 WB_ENTRY(jlong, WB_GetObjectSize(JNIEnv* env, jobject o, jobject obj)) |
295 oop p = JNIHandles::resolve(obj); |
296 oop p = JNIHandles::resolve(obj); |
296 return p->size() * HeapWordSize; |
297 return p->size() * HeapWordSize; |
297 WB_END |
298 WB_END |
298 |
299 |
|
300 WB_ENTRY(jlong, WB_GetHeapSpaceAlignment(JNIEnv* env, jobject o)) |
|
301 size_t alignment = Universe::heap()->collector_policy()->space_alignment(); |
|
302 return (jlong)alignment; |
|
303 WB_END |
|
304 |
299 #if INCLUDE_ALL_GCS |
305 #if INCLUDE_ALL_GCS |
300 WB_ENTRY(jboolean, WB_G1IsHumongous(JNIEnv* env, jobject o, jobject obj)) |
306 WB_ENTRY(jboolean, WB_G1IsHumongous(JNIEnv* env, jobject o, jobject obj)) |
301 G1CollectedHeap* g1 = G1CollectedHeap::heap(); |
307 G1CollectedHeap* g1 = G1CollectedHeap::heap(); |
302 oop result = JNIHandles::resolve(obj); |
308 oop result = JNIHandles::resolve(obj); |
303 const HeapRegion* hr = g1->heap_region_containing(result); |
309 const HeapRegion* hr = g1->heap_region_containing(result); |
330 return false; |
336 return false; |
331 WB_END |
337 WB_END |
332 |
338 |
333 WB_ENTRY(jint, WB_G1RegionSize(JNIEnv* env, jobject o)) |
339 WB_ENTRY(jint, WB_G1RegionSize(JNIEnv* env, jobject o)) |
334 return (jint)HeapRegion::GrainBytes; |
340 return (jint)HeapRegion::GrainBytes; |
|
341 WB_END |
|
342 |
|
343 WB_ENTRY(jlong, WB_PSVirtualSpaceAlignment(JNIEnv* env, jobject o)) |
|
344 ParallelScavengeHeap* ps = ParallelScavengeHeap::heap(); |
|
345 size_t alignment = ps->gens()->virtual_spaces()->alignment(); |
|
346 return (jlong)alignment; |
|
347 WB_END |
|
348 |
|
349 WB_ENTRY(jlong, WB_PSHeapGenerationAlignment(JNIEnv* env, jobject o)) |
|
350 size_t alignment = ParallelScavengeHeap::heap()->generation_alignment(); |
|
351 return (jlong)alignment; |
335 WB_END |
352 WB_END |
336 |
353 |
337 WB_ENTRY(jobject, WB_G1AuxiliaryMemoryUsage(JNIEnv* env)) |
354 WB_ENTRY(jobject, WB_G1AuxiliaryMemoryUsage(JNIEnv* env)) |
338 ResourceMark rm(THREAD); |
355 ResourceMark rm(THREAD); |
339 G1CollectedHeap* g1h = G1CollectedHeap::heap(); |
356 G1CollectedHeap* g1h = G1CollectedHeap::heap(); |
1330 {CC"isObjectInOldGen0", CC"(Ljava/lang/Object;)Z", (void*)&WB_isObjectInOldGen }, |
1347 {CC"isObjectInOldGen0", CC"(Ljava/lang/Object;)Z", (void*)&WB_isObjectInOldGen }, |
1331 {CC"getHeapOopSize", CC"()I", (void*)&WB_GetHeapOopSize }, |
1348 {CC"getHeapOopSize", CC"()I", (void*)&WB_GetHeapOopSize }, |
1332 {CC"getVMPageSize", CC"()I", (void*)&WB_GetVMPageSize }, |
1349 {CC"getVMPageSize", CC"()I", (void*)&WB_GetVMPageSize }, |
1333 {CC"getVMAllocationGranularity", CC"()J", (void*)&WB_GetVMAllocationGranularity }, |
1350 {CC"getVMAllocationGranularity", CC"()J", (void*)&WB_GetVMAllocationGranularity }, |
1334 {CC"getVMLargePageSize", CC"()J", (void*)&WB_GetVMLargePageSize}, |
1351 {CC"getVMLargePageSize", CC"()J", (void*)&WB_GetVMLargePageSize}, |
|
1352 {CC"getHeapSpaceAlignment", CC"()J", (void*)&WB_GetHeapSpaceAlignment}, |
1335 {CC"isClassAlive0", CC"(Ljava/lang/String;)Z", (void*)&WB_IsClassAlive }, |
1353 {CC"isClassAlive0", CC"(Ljava/lang/String;)Z", (void*)&WB_IsClassAlive }, |
1336 {CC"parseCommandLine0", |
1354 {CC"parseCommandLine0", |
1337 CC"(Ljava/lang/String;C[Lsun/hotspot/parser/DiagnosticCommand;)[Ljava/lang/Object;", |
1355 CC"(Ljava/lang/String;C[Lsun/hotspot/parser/DiagnosticCommand;)[Ljava/lang/Object;", |
1338 (void*) &WB_ParseCommandLine |
1356 (void*) &WB_ParseCommandLine |
1339 }, |
1357 }, |
1354 {CC"g1NumFreeRegions", CC"()J", (void*)&WB_G1NumFreeRegions }, |
1372 {CC"g1NumFreeRegions", CC"()J", (void*)&WB_G1NumFreeRegions }, |
1355 {CC"g1RegionSize", CC"()I", (void*)&WB_G1RegionSize }, |
1373 {CC"g1RegionSize", CC"()I", (void*)&WB_G1RegionSize }, |
1356 {CC"g1StartConcMarkCycle", CC"()Z", (void*)&WB_G1StartMarkCycle }, |
1374 {CC"g1StartConcMarkCycle", CC"()Z", (void*)&WB_G1StartMarkCycle }, |
1357 {CC"g1AuxiliaryMemoryUsage", CC"()Ljava/lang/management/MemoryUsage;", |
1375 {CC"g1AuxiliaryMemoryUsage", CC"()Ljava/lang/management/MemoryUsage;", |
1358 (void*)&WB_G1AuxiliaryMemoryUsage }, |
1376 (void*)&WB_G1AuxiliaryMemoryUsage }, |
|
1377 {CC"psVirtualSpaceAlignment",CC"()J", (void*)&WB_PSVirtualSpaceAlignment}, |
|
1378 {CC"psHeapGenerationAlignment",CC"()J", (void*)&WB_PSHeapGenerationAlignment}, |
1359 #endif // INCLUDE_ALL_GCS |
1379 #endif // INCLUDE_ALL_GCS |
1360 #if INCLUDE_NMT |
1380 #if INCLUDE_NMT |
1361 {CC"NMTMalloc", CC"(J)J", (void*)&WB_NMTMalloc }, |
1381 {CC"NMTMalloc", CC"(J)J", (void*)&WB_NMTMalloc }, |
1362 {CC"NMTMallocWithPseudoStack", CC"(JI)J", (void*)&WB_NMTMallocWithPseudoStack}, |
1382 {CC"NMTMallocWithPseudoStack", CC"(JI)J", (void*)&WB_NMTMallocWithPseudoStack}, |
1363 {CC"NMTFree", CC"(J)V", (void*)&WB_NMTFree }, |
1383 {CC"NMTFree", CC"(J)V", (void*)&WB_NMTFree }, |