私のコードでは多くのリフレクションルックアップを行っているので、なんとかしてそれを改善しようとしていました。
これは私のjniセッターメソッドのサンプルです:
JNIEXPORT jobject JNICALL
Java_org_orman_mapper_Model_fieldSetFloat(JNIEnv * env, jobject obj, jobject model, jstring field_name, jstring field_type, jfloat value, jclass clazz)
{
const char* utf_string_name = (*env)->GetStringUTFChars (env, field_name, 0);
const char* utf_string_type = (*env)->GetStringUTFChars (env, field_type, 0);
jfieldID id = (*env)->GetFieldID(env, clazz, utf_string_name, utf_string_type);
(*env)->SetFloatField(env, model, id, value);
return model;
}
のような呼び出しの本質はSetFloatField
、Javaのセキュリティチェックをスキップしますか?
パフォーマンスの向上には気づいていません。