가끔 글들을 보면 아이폰이나 안드로이드에서 메모리 정리가 필요 없다고 하시는 분들이 꽤 많이 계십니다.

 

사실 저도 초기에는 안드로이드에서 다 관리해 주는데 왜 필요한거지..? 라고 알고 있었습니다.

 

구글에서도 그렇게 이야기 했고, 메모리 정리 프로그램은 착시 현상이다.. 라고 말씀하시는 분들이 많으셨으니까요.

 

그러나 실제 몇년동안 안드로이드 프로그래밍을 하면서 느낀점은...(물론 아이폰도 마찬가지 입니다) 메모리 정리(프로세스 킬)은 꼭 필요하구나.. 입니다.

 

과연 안드로이드가 저절로 알아서 메모리를 전부 정리해 줄까요..?

 

정답은.. 아니오 입니다.

 

물론 설치하신 앱들이 100% 완벽하게 만들어 졌다면 구글에서 말한데로 OS차원에서 메모리를 관리하여 줍니다.

 

하지만!!!! 인터넷상에서 돌아다니는 프로그래밍 기술등을 토대로 보면 대부분의 앱들이 메모리 릭을 무시한채 개발되고 있더군요.

 

이 뜻은 OS가 아무리 천재라도 이 릭만큼은 해결 할 수 없다는 뜻입니다.

 

안드로이드 프로그래밍에서 필요 없는 메모리는 스스로 정리해서 날려버리는 기능이 있기 때문에 대부분의 프로그래머 들은 메모리 관리 없이 무대뽀 코딩을 하고 있습니다. 하지만 실제로 일어나는 일은 그렇지 않습니다. 또한 불가능하구요.

 

조금 기술적으로 들어가보면 엑티비티의 생명주기(Life Cycle)을 보면 어느정도 이해하실 수 있는 부분이 있으실것 같습니다.

깊게 들어가면 좀 복잡하지만 대부분의 앱들이 this 인자를 사용하여 Context를 다른 클래스나 엑티비티에서 사용하게 됩니다. 만약 이때 그냥 "홈"버튼을 눌러서 빠져나오게 된다면 어떻게 될까요?

 

안드로이드에서는 Intent 라는 클래스를 생성한 후 새로운 창을 호출하는데, 이 Intent를 부를때 이 Intent를 생성하는 메인 엑티비티에서 Context로 this인자를 넘겨주면 이 메인엑티비티가 사라질때까지는 새로 생성된 엑티비티(Intent)가 정리가 안되게 됩니다. 당연히 OS에서는 아직 사용하고 있다고 생각하고 가비지 컬랙션을 못하고 있겠죠. 이것은 고스란히 메모리에 상주하고 남게 됩니다.

 

새로 생성된 엑티비티에서 홈 버튼을 눌렀을 때 onPause 에서 메모리 해제를 해주고, onResume에서 다시 객체를 생성해서 사용하게 한다면 메모리 릭이 발생하지 않겠죠.

 

하지만 실상(99%)의 앱들이 그렇게 하지 않고 있습니다. 안드로이드의 가비지 컬렉션을 과신하고 있는것이죠...

 

실제로 저도 과신하다가 큰 낭패를 많이 만났었습니다. 특히 만화책 뷰어를 개발할때 점점 메모리를 먹게되면서 나중에는 한 앱당 사용할 수 있는 메모리량을 초과하여 오류를 뿜어내고 멈추게되는 현상까지 나타나게 되었지요...

 

그러나 스피드업 같은 최적화 프로그램을 이용해서 Task Kill을 해주면(안드로이드 2.2 버전 이후부터는 Restart입니다.) 메인 엑티비티를 종료 또는 재시작 하라는 명령을 통해 그 안에서 다시 생성되었던 Intent가 정리되게 됩니다. 즉 메인 액티비티에서 새로운 창을 생성하지 않은 상태가 되는것이지요.

 

조금 더 자세히 설명을 하면 ..... (에구 하나 설명하려다 보니 부연설명할게 너무너무 많아지네요.ㅜㅜ)

 

안드로이드에서는 프로그램을 설치하는 순간 그 앱의 메인 엑티비티는 살아있는 상태가 됩니다. 그리고 바로 중지 상태가 되어있는 것이죠. 그리고 실행을 하면 그 중지상태의 엑티비티가 활성화 되는것입니다. 그래서 2.2(프로요)부터는 Restart를 하면 메인엑티비티만 뜨고, 그 안에서 생성된 다른 엑티비티(Intent)는 해제가 되는 상태가 되기 때문에 메모리 정리가 될수 있다고 하는 것이지요..

 

좀 길게 설명을 했지만, Restart를 하면서 다시 실행이 되는 과정에서 약간의 버벅임은 말씀하시는데로 있습니다. 하지만 그 이후에는 확보된 메모리에 의해서 더욱 쾌적하게 돌아가게 됩니다.

 

어떤분은 메모리와 속도는 전혀 상관이 없다고 하시지만, 실제로 사용해보시면 그렇지 않다는 것을 아실 수 있습니다. 바로 메모리가 부족하면 버벅거리거나 아예 실행이 안되는 앱들이 있는것이 증거 입니다. 이때 메모리를 정리한 후 해보시면 잘 됩니다.

 

사실 여러말 할 필요 없이..... 사용해보고 효과가 있는지 없는지를 확인해보면 됩니다.

 

메모리 량이 확보되었을 때의 속도와 그렇지 않을 때의 속도는 현재 AP의 속도가 빠르고 코어의 수가 많음에도 불구하고 상당한 차이가 납니다. 사양이 안좋은 폰에서는 더더욱 차이가 두드러지게 납니다.

 

벤치마킹에서 나오는 숫자는 의미가 없습니다... 그냥 AP의 속도 등등을 마킹하는것이므로 당연히 변함이 있을리가 없지요..

 

갤럭시 S가 메모리가 부족하여 버벅거리고, 홈화면에서 스크롤 조차 버벅거려서 짜증날때 메모리 정리를 해주면 아주 새폰처럼 빠릿해 집니다. 물론... 앱을 너무 많이 설치 한 상태라면 정리 할 수 있는 한계가 있겠지만, 대부분의 경우 많은 효과가 있습니다.

 

구글이던 애플이던 완벽한 OS는 없습니다. 어쩔수 없는것이지요... 더더군다나 수많은 앱들이 모두 100% 메모리 관리를 하면서 만들어 진다는 보장은 없다고 봅니다.

 

즉, 결론은 메모리 정리 프로그램은 많은 앱들이 메모리 관리가 제대로 되게 만들어진다면 필요가 없겠지만, 그렇지 않은이상 꼭 필요한 프로그램이 될것이라고 봅니다.

 

참고로... 메모리 정리를 하나 안하나 못느낀다는 뜻은 아직 사용할 수 있는 메모리의 량이 충분해서..라고 생각하시면 됩니다.

 

어느 순간 버벅임을 느끼셨을 때 한번 메모리 최적화 프로그램을 사용해 보세요. 그러면 아.. 다르긴 다르구나.. 라는것을 직접 체감하실 수 있습니다.

 

별거 아닌글을 상당히 길게.... 거창하게 썼네요.....

 

긴글 읽어주시느라 수고 많으셨습니다.

 

감사합니다.

 

저작자 표시
신고

'IT관련 이야기' 카테고리의 다른 글

메모리 최적화는 과연 필요한것인가?  (0) 2012.10.14
Posted by 진짜 미드미

Trackback Address :: http://midmee.tistory.com/trackback/9 관련글 쓰기

댓글을 달아 주세요

스피드업 통화목록 관리 애드온이 발표 되었습니다.

 

이 애드온은 당연히 스피드업이 설치되어 있어야만 사용이 가능합니다.

 

당연히 무료 애드온 입니다. 스피드업을 구매하신 분들은 모두 설치 가능하며 사용하실 수 있습니다.

 

사용법

 

일단 환경설정에서 통화목록 관리 애드온 쪽을 보면 3가지 항목이 있습니다.

 

오래된 통화기록 삭제

오래된 통화기록 삭제 날짜 설정

오래된 통화기록 함

 

이렇게 3가지가 있습니다.

 

오래된 통화기록 삭제 옵션에 체크가 되어있으면 스피드업의 "Go" 버튼을 누르면 백업이 시작 됩니다. 이때 백업할 것이 많으면 시간이 좀 걸릴 수 있으니 잠시만 기다려 주십시오.

 

기본적으로 7일 이내의 기록만 남기고 그 이전의 기록들은 오래된 통화기록 함 에 따로 저장이 됩니다.

 

오래된 통화기록 삭제 날짜 설정으로 몇일 이내의 기록을 남길 것인지 설정 하실 수 있습니다.

 

오래된 통화기록 함은 아이콘으로도 제공되며, 스피드업 환경 설정에서도 보실 수 있습니다.

 

오래된 통화 기록을 몇개월째 정리 하지 않으셨다면 다이얼러가 뜰 때 그만큼 더 시간이 걸리게 되겠지요. 물론 메모리도 더 차지하게 됩니다. 가끔 스피드업을 실행하셔서 Go 버튼으로 백업하시길 권장해 드립니다.

 

 

   

 

오래된 통화 기록함안에서는 오래된 기록들을 SD카드로 저장 및 복원이 가능합니다.

 

위아래 모양의 화살표 아이콘을 클릭하시면 SD카드로 저장하거나 복원하는 메뉴가 나타납니다.

 

폰을 바꾸거나 초기화 하기 전에 저장해 놓으셨다가 다시 복원하시면 계속 보관이 가능합니다.

 

목록에서 맨 오른쪽 전화 아이콘이나 문자 아이콘을 클릭하시면 바로 전화걸기나 문자보내기가 가능하며, 맨 위의 검색란에서 검색도 가능합니다.

 

감사합니다.

 

덧붙이는 말 -여기서부터는 개발자 개인의 자격으로 글을 씁니다.-

 

요새 선거철이라 그런지 스피드업에도 네거티브 댓글을 다는 분들이 계십니다. 개선을 위한 의견, 건의 등은 고맙게 잘 참고 하고 있습니다.

 

별 시덥지도 않고 무식이 탄로나는 댓글들이 가끔 눈에 보입니다. 스피드업 때문에 자기 폰 부품이 탔다는 둥.. 창 전환 애니메이션만 조절하는 사기 앱이라는 둥... 핸드폰에 무리를 주는 앱이라는 둥.... 정말.. 앱에 대해서 몰라도 너~~~무 모르는 사람들이네요.

스마트폰을 조금 다룰줄 안다고 자만(?) 하시는 분들이 올리는 글 같은데, 그런 댓글 다시면 정말 스마트폰을 제대로 잘 다루는 분들께서 보시면 "별 무식한놈 다 보겠네" 라는 말이 저절로 나옵니다.

 

핸드폰에 무리를 주거나(오버클럭 등), 부품을 타게 하는 앱을 개발하기는 핸드폰 자체가 불량이 아닌이상 불가능 합니다. 더더욱 루팅없이 핸드폰에 무리를 주거나 부품을 태울 만한 앱을 개발한다면 노벨상 감이겠지요.

 

스피드업이 창 애니메이션만 조절하는 앱으로 본다면, 스피드업 설명을 읽지도 않고 아는척 하는 분들입니다.

 

제 생각에는 이러한 댓글을 다는 사람들은 둘중에 하나겠지요.

아는척 하는 바보같은 사람이라던가, 스피드업의 아이디어를 따라서 만드는 경쟁업체에 관련된 사람이라던가..

 

하여간 세상에는 별의 별 사람들이 다 있더군요.. 이메일 날라오는걸 봐도... 첫마디부터 반말로 말하는 사람부터....

 

저는 고객 서비스 정신이 투철한 삼성 같은 대기업이 아닌, 개인 개발자 입니다. 즉, 예의가 없고 막말을 하는 고객에게는 댓구 할 가치를 느끼지 못하는 지극히 평범한 사람 중에 하나 입니다. 고객은 왕인데 까라면 까야지! 라고 말하는 메일들 보면 그냥 무시하고 지워버립니다.

 

가끔씩 오는 스피드업 덕분에 스마트폰 사용하기가 편해졌다는 격려 메일 같은것을 받으면 참 보람을 느낍니다.

 

그런데 한국사람보다는 일본 사람들로 부터 그런 격려 메일이 더 많이 오네요..

 

폰에 대해서 조금 알기 시작했다고 해서 자신이 아는 것이 전부이고 진실인양 떠드는 사람들... 그러지 마세요.

스피드업은 수 많은 고수분들께서 인정한 앱입니다. 고수 분들 역시 사용의 편리함을 알아주시네요.

 

 

저작자 표시
신고
Posted by 진짜 미드미

Trackback Address :: http://midmee.tistory.com/trackback/8 관련글 쓰기

댓글을 달아 주세요

티스토리 툴바