안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드에서 NDK를 이용하여 C코드를 부르는데,
같은 함수를 호출할때마다 2배정도로 함수처리속도가 느려집니다.
제 생각에는 C코드 상에서 Memory leak현상이 일어나는것 같은데.. 특별히 동적할당은 안하는데요.
C에서함수가 호출되고 정상적으로 종료되도
안드로이드에선 그에 대한 정적 자원들을 계속 잡고있나요??
아니면 Memory leak이 일어나서 이게 싸이는건지 잘 모르겠네요.. ㅠㅠ
/////////////////////////////////////////////////////////////////////////////////////////////
public native int getPercentFromJNI(); // 네이티브 함수
getPercentFromJNI(); // 정상속도
getPercentFromJNI(); // 처리속도 2배 느려짐
getPercentFromJNI(); // 처리속도 4배 느려짐
///////////////////////////////////////////////////////////////////////////////////////////
요런 현상이에요 ㅠㅠ




아 겨우 알아냈습니다..
C코드 상에서 전역변수를 사용하고 있으면 메모리를 계속 잡고있네요... 정적변수잡고 있는건 어찌 생각하면 당연한 거였는데..
동적할당에만 신경쓰다보니 발밑을 보지 못했네요..ㅠㅠㅠ
저처럼 삽질 하는분 없길 바랍니다 ㅠㅠ