/* * Class: org_apache_harmony_lang_management_MemoryMXBeanImpl * Method: getHeapMemoryUsageImpl * Signature: ()Ljava/lang/management/MemoryUsage; */ JNIEXPORT jobject JNICALL Java_org_apache_harmony_lang_management_MemoryMXBeanImpl_getHeapMemoryUsageImpl (JNIEnv * jenv_ext, jobject) { TRACE2("management","MemoryMXBeanImpl_getHeapMemoryUsageImpl invocation"); JNIEnv_Internal *jenv = (JNIEnv_Internal *)jenv_ext; JavaVM * vm = NULL; jenv_ext->GetJavaVM(&vm); jlong init = ((JavaVM_Internal*)vm)->vm_env->init_gc_used_memory; jlong used = gc_total_memory(); jlong committed = gc_total_memory(); jlong max = gc_max_memory(); jclass memoryUsageClazz =jenv->FindClass("java/lang/management/MemoryUsage"); if (jenv->ExceptionCheck()) {return NULL;}; jmethodID memoryUsageClazzConstructor = jenv->GetMethodID(memoryUsageClazz, "<init>", "(JJJJ)V"); if (jenv->ExceptionCheck()) {return NULL;}; jobject memoryUsage = jenv->NewObject(memoryUsageClazz, memoryUsageClazzConstructor, init, used, committed, max); return memoryUsage; };
/* * Class: java_lang_VMMemoryManager * Method: getMaxMemory * Signature: ()J */ JNIEXPORT jlong JNICALL Java_java_lang_VMMemoryManager_getMaxMemory (JNIEnv *, jclass) { return gc_max_memory(); }