2011-08-23 5 views
6

나는 (System.c 파일)이 함수의 기본 구현은 어디에서 찾을 수 있습니까?

static JNINativeMethod methods[] = { 
    {"currentTimeMillis", "()J",    (void *)&JVM_CurrentTimeMillis}, 
    {"nanoTime",   "()J",    (void *)&JVM_NanoTime}, 
    {"arraycopy",  "(" OBJ "I" OBJ "II)V", (void *)&JVM_ArrayCopy}, 
}; 

#undef OBJ 

JNIEXPORT void JNICALL 
Java_java_lang_System_registerNatives(JNIEnv *env, jclass cls) 
{ 
    (*env)->RegisterNatives(env, cls, 
          methods, sizeof(methods)/sizeof(methods[0])); 
} 

열린 JDK 이러한 발견하지만 난이 얻을 수있는 이

양식을 arraycopy nanoTime 전에 currentTimeMillis 이러한 기능의 기본 implemetations을 찾을 수 없습니다 이러한 함수의 네이티브 구현은? 오픈 JDK에서 사용할 수 있습니까?

답변

4

jdk7/핫스팟/SRC/점유율/VM/프림/jvm.cpp 그것을 발견하는 경우 : (리눅스 용) 229

JVM_LEAF(jlong, JVM_CurrentTimeMillis(JNIEnv *env, jclass ignored)) 
JVMWrapper("JVM_CurrentTimeMillis"); 
return os::javaTimeMillis(); 
JVM_END 

실제 구현을

/jdk7/핫스팟/src/os/linux/vm/os_linux.cpp

다른 방법은 바로 아래에 있습니다

관련 문제