2011-08-23 6 views
6

これらの関数のネイティブ実装はどこにありますか?

のarraycopy nanoTime 私が得ることができるフォームを、私は

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(System.cファイル)でこれらを発見したが、私は、これらの機能のネイティブimplemetationsに にcurrentTimeMillis を見つけることができませんでしたこれらの関数のネイティブ実装 オープンJDKで利用できますか?

答えて

4

JDK7 /ホットスポット/ SRC /シェア/ VM /プリム/ jvm.cppそれを見つけた場合:(Linux用)229

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

実際の実装を

である

/jdk7/hotspot/src/os/linux/vm/os_linux.cpp

他の方法はすぐ下にあります

関連する問題