jni 구현때문에 애를 먹는 개발자 입니다 .ㅠㅠ..
다름이 아니라 jbytearray 를 jni에서 구현해 사용하는 도중 메모리 릭이 발생해서요.
찾아보니까
jdata = (*g_env)->NewByteArray(g_env, x_size);
(*g_env)->SetByteArrayRegion(g_env, jdata, 0, x_size, (jbyte *) data );
NewByteArray 요부분의 x_size가 크기가 너무 큰데다 사용빈도수가 너무 많아서 메모리 릭이 발생하는 것으로 파악됐습니다.
그래서 글로벌로
jdata = (*g_env)->NewByteArray(g_env, 50000); //x_size
jdata = (jbyteArray)(*g_env)->NewGlobalRef(g_env,jdata);
위와 같이 해서 메모리 릭이 나지 않는 것은 확인을 했는데 문제가 있습니다.
위에 임의로 집어넣은 50000이라는 값은 원래가 수시로 변하는 x_size 의 값입니다.
간략하게 질문 드립니다.
NewByteArray 를 사용하지 않고 jbytearray의 크기를 조정하는 방법은 없을까요?
살려주십시오 ㅠㅠ.