안드로이드 애플리케이션 개발 환경이 Eclipse에서 Android Studio로 넘어오면서
Memory Analzyer(이하 MAT - Memory Analyzer Tool)를 사용하는 것이 좀 애매해 졌습
니다.

기존에는 MAT가 Eclipse의 플러그인 형태로 제공되었기 때문에 MAT를 이용하려면
Eclipse를 추가로 실행해야 합니다. 또한 더 이상 Eclipse용 ADT가 업데이트 되지
않으므로 DDMS -> MAT 로 연계시켜 이용하는 방법이 어려울 거라 예상됩니다.

그래서 앞으로는 Android SDK에 포함된 Android Device Monitor(sdk/tools/monitor)에
서 hprof 덤프를 떠서 MAT Stand-alone 에서 로딩 하는 방법으로 이용해야 합니다.
(나중에라도 Android SDK에 포함된 Android Device Monitor 에서 MAT 플러그인을 설치
할 수 있도록 지원이 되어 바로 DDMS - MAT 연계가 되면 좋겠지만, 지금 테스트 해 본
결과, 현재 Eclipse MAT 플러그인 설치는 되지 않습니다.)

먼저 MAT Stand-alone 버전의 다운로드는 아래 링크에서 받을 수 있습니다.

http://ftp.kaist.ac.kr/eclipse/mat/1.6/rcp/
(이 글을 쓰는 시점 기준으로 1.6 최신 버전입니다. 공식 사이트의 속도가 너무 느려
서 일부러 한국 미러 사이트 링크를 걸어 두었습니다.)

위 링크에서 플랫폼에 맞는 버전을 선택해서 다운로드 하시면 되겠습니다.
단, 리눅스 버전의 경우 openjdk를 사용하게 되면 자꾸 죽는 현상이 발생했습니다.
혹시 같은 문제가 생기시는 분은 MemoryAnalyzer.ini 파일에 아래 두 줄을 추가해 주
세요. jdk 위치는 각자 환경에 맞게 수정하시면 됩니다.

-vm
/usr/lib/jvm/jdk1.7.0_51/bin


그리고 가져온 hprof 파일의 포맷을 변환하는 방법은 아래와 같습니다.

sdk/platform-tools/hprof-conv src dst


추가로 adb 명령으로도 hprof 덤프를 받을 수 있습니다.

adb shell am dumpheap pid혹은process명 hprof파일경로


위 명령으로 생성된 파일은 디바이스 내장메모리에 저장이 되므로, adb pull 명령으로
PC로 가져와야 합니다.  하지만 'Cause GC' 를 수행 할 수 없기 때문에 힙 덤프 분석
이 좀 더 귀찮아 질 것 같습니다.



P.S
이후 시간이 된다면 hprof-conv를 좀 더 편하게 할 수 있는 Front-End 툴을 만들어
첨부 하도록 하겠습니다.

반응형

설정

트랙백

댓글

다른 사람이 코멘트한 코드리뷰를 보다가 위와 같은 의문이 생겨서
조금 더 생각해보고 인터넷 검색하여 다른 사람의 생각을 찾아보았다.

그리고 내가 내린 결론을 말하자면 대부분의 경우에 "YES" 라고 하겠다.

가장 큰 이유를 말하자면 단순한 스트링은 그 스트링이 의미하는 것을 정확히 설명하지 못한다는 것이다.

예를들면 특정 앱에 할당된 ID를 생각 해보자.
우리앱에 할당된 ID는 "lkjq2oifw2" 이다.
이걸 전체 프로젝트에서 한 번만 사용한다고 하더라도 이 스트링의 의미를 명확하게 표현하는 이름의
Contant로 사용하는게 낫지 않을까?

스트링 뿐만이 아니라 단순한 숫자값의 경우도 마찬가지이다.
그리고 여러번 사용되는 경우 라면 더더욱 말할 것도 없고...

내가 생각한 예외적인 경우는,
로그 스트링 정도? 아니면 SQL 문법의 키워드 같은 것도 괜찮을 꺼 같다.

 

반응형

설정

트랙백

댓글

Technical Debt의 개념에 대한 글을 찾아 보다가 '리팩토링'의 저자 마틴 파울러가 쓴 글을 찾았다.

팀에 공유하고 싶어 번역을 할까 싶었는데 다른 분이 먼저 번역한 것이 있어서 냉큼 트랙백을 걸었다.


원문:

http://www.martinfowler.com/bliki/TechnicalDebt.html


번역문:

http://jinson.tistory.com/entry/%ED%95%9C%EA%B8%80%ED%99%94-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-3-%EA%B8%B0%EC%88%A0%EB%B6%80%EC%B1%84




추가로 Technical Debt에 대한 다른 글도 링크를 남겨본다.


조대협님의 블로그: Technical Debt 에 대한 영문 위키 버전의 내용과 비슷.

http://bcho.tistory.com/811


지디넷 기사:

http://www.zdnet.co.kr/column/column_view.asp?artice_id=20140609092502





기술적 부채를 갚는 것은 비개발 조직 입장에서 보면 하등 쓸데없는 짓인데,

이러한 비유가 개발자의 고충을 이해하는 데 도움이 되었으면...


결국 빚을 갚아야 하는 건 개발자인데,

문제는 개발조직의 장으로 있는 사람도 이런 것에 관심이 없다는거...

반응형

설정

트랙백

댓글