'profiling'에 해당되는 글 1건

  1. 2014.07.04 android-ndk-profiler 사용하기

Google code에 android-ndk-profiler가 있고, 설명도 잘 되어 있다.

그런데, 나의 이해력이 부족해서 그런건지 모르겠지만, 애매하게 잘 안되었던 부분들이 있어서 정리한다.

 

 


 

설명에는 다운로드한 압축파일을 $HOME/tools 위치에 해제하고, ndk-build에 NDK_MODULE_PATH를 이용해 경로를 지정하라고 되어 있는데, 나의 경우에는 NEON 사용을 위해 cpufeatures를 추가로 사용하기 때문에 그런건지, 아니면 Windows 환경이라서 그런 것인지는 모르겠지만 빌드 에러가 발생했다.

 

이 문제는 그냥, 아래와 같이 ANDROID NDK가 설치된 경로에 복사해서 해결했다.

 

android-ndk-r9d\sources\android-ndk-profiler

 

 


 

 

그리고 arm-linux-androideabi-grpof를 실행할 때 profiling 한 library를 넘겨주라고 되어 있는데,

 

$ANDROID_NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gprof your_lib.so

 

stripped library라고 에러메시지를 뱉어 냈다.

 

평소에는 Eclipse에서 libs/armeabi-v7a/에 생성된 .so 파일만 바라보았기 때문에, 다른 위치에 또 생성이 되는지는 몰랐다.

찾아보니 lib/armeabi-v7a/에 생성되는 .so 파일은 stripped library 이며, 여기에서 필요한 non-stripped library는 obj/local/armeabi-v7a/에 생성된다.

 

알고보니 내가 설명을 자세히 읽지 않았었군...;;

 

Run the gprof tool, passing it the non-stripped library (usually in $PROJECT/obj/local/armeabi-v7a/libXXXX.so or $PROJECT/obj/local/armeabi/libXXXX.so). This is for NDK version r5b onwards, in earlier versions the path to gprof is different but should still work.

 

 


 

 

위의 obj/local/armeabi-v7a/에 생성된 .so 파일을 넘겨주면 결과가 stdout으로 출력되니, 파일로 redirection하여 출력하면 보기 편하다.

 

Posted by 세월의돌