APR_DECLARE(size_t) port_vmem_max_size(){ PERFORMANCE_INFORMATION pi; if ( GetPerformanceInfo( &pi, sizeof(pi)) ) { return (pi.CommitLimit - pi.CommitTotal) * pi.PageSize + port_vmem_committed_size(); } else { return (size_t)0; } }
/* * Class: org_apache_harmony_lang_management_MemoryMXBeanImpl * Method: getNonHeapMemoryUsageImpl * Signature: ()Ljava/lang/management/MemoryUsage; */ JNIEXPORT jobject JNICALL Java_org_apache_harmony_lang_management_MemoryMXBeanImpl_getNonHeapMemoryUsageImpl (JNIEnv * jenv_ext, jobject) { TRACE2("management","MemoryMXBeanImpl_getNonHeapMemoryUsageImpl invocation"); Global_Env* genv = VM_Global_State::loader_env; JNIEnv_Internal *jenv = (JNIEnv_Internal *)jenv_ext; JavaVM * vm = NULL; jenv_ext->GetJavaVM(&vm); jlong init = ((JavaVM_Internal*)vm)->vm_env->init_used_memory - ((JavaVM_Internal*)vm)->vm_env->init_gc_used_memory; if (init <= 0) {init = -1;} jlong used = port_vmem_used_size(); if (used < init) {used = init;} if (used == -1) {used = 0;} jlong committed = port_vmem_committed_size(); if (committed < used) {committed = used;} if (committed == -1) {committed = 0;} jlong max = port_vmem_max_size(); if ((max < committed) && (max != -1)) {max = committed;} 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; };
APR_DECLARE(size_t) port_vmem_reserved_size(){ // TODO: Update this method when/if new common memory manager will be created return port_vmem_committed_size(); }
APR_DECLARE(size_t) port_vmem_reserved_size(){ // TODO: should return summarized reservaition instead of peak. return port_vmem_committed_size(); }
APR_DECLARE(size_t) port_vmem_used_size(){ return port_vmem_committed_size(); }