본문 바로가기

TIp

안드로이드폰의 고용량 메모리의 필요성?




요즘 안드로이드 폰 스펙들이 무척이나 높아졌는데요

OS와 최적화 수준이 비슷하다면 AP의 종류나 클럭 주파수, GPU에 따라 대부분 성능이 결정됩니다.

코어 1기가 시대를 돌파한지 얼마되지않아 듀얼코어를 거쳐 이제는 쿼드코어가 장착된 스마트 폰들이

나오기 시작하고 얼마전 옵티머스 LTE가 2GB 램을 달고나온데 이어서 

갤럭시S3 LET도 3G모델과는 다르게 2GB 램을 달고 나왔죠.


그런데 이 2GB 램이 과연 필요한지가 의문이네요..


PC에서의 램은 OS가 제어 가능한 한도 내에서 많을수록 좋은게 사실입니다.

PC에서 램은 작업을 할 수 있는 프로세스들을 올려놓고 사용하는 작업공간같은 곳이니까요

책상위에 여러가지 책을 펼쳐놓고 필요한 책을 바로바로 페이지를 넘겨 찾아볼 수 있는 

특히나 멀티테스킹의 성능이 필요한 요즘같은 시대에 PC에서 램의 크기는 말그대로 다다익선입니다.


하지만 PC에서 램도 적정 수준이라는것이 있습니다. 

1GB의 램이 달려있는PC를 4GB로 업그레이드 하면 많은 성능향상을 체감할 수 있죠

그러나 4GB의 램이 달려있는 PC의 다른 부품들은 그대로 둔 채 16GB로 램을 늘린다고 해서 

큰 성능 향상을 기대할 수 있을까요? 아마 대부분의 작업에서 

그 램을 다 사용할 정도로 램의 의존도가 높은 작업을 한다면 아마 그램이 부족함보다는 

CPU의 사용률이 100%가 되버리겠죠.

물론 램이 커지면 분명 성능 향상은 있습니다. 램이 커질수록 그 차이는 점점 미미해질뿐..

일단 32비트OS의 PC에서 4GB 이상의 램은 커널에서 제어를 하지 못합니다.

윈도우 XP가 깔린 PC에서 16GB 램을 다는 바보는 없겠죠 아마..??

다른 하드웨어와 OS를 고려하지 않고 램만을 무한정 늘린다고 PC가 빨라지지는 않습니다.


그런데 안드로이드에서는 이런 현상이 더 크게 나타 납니다.

현재 가장 많이 사용되고 있는 진저브레드와 아이스크림샌드위치부터 안드로이드 최신 버전인 젤리빈까지

1GB면 충분하다고 제조사들이 판단했고 

아이스크림샌드위치의 레퍼러스폰인 갤럭시넥서스역시 1GB 램을 사용했습니다.

하드웨어 제조사들 뿐만 아니라 개발자들역시 그렇게 판단하고 어플을 개발하고 있습니다.

게다가 스마트폰의 램은  비휘발성 메모리이기에 데이터를 유지시켜주기 위해서는 계속 전력을 공급해줘야만 합니다.

따라서 늘어난 메모리는 많은 전력을 소비하기에 적정수준 이상의 램은 과유불급일 수도 있다라는 생각이 듭니다.


구글측에서는 아샌이나 젤리빈을 구동하기 위해 필요한 적정 램의 용량을 790MB로 책정했다고 발표했습니다.

커널 등 운영체제의 기본 요소에 340MB, 커널 등 운영체제의 기본 요소에 340MB, 기타여유 100MB 입니다.


흔히 일반적인 어플 하나를 구동하는데 필요한 메모리의 양은 5~30MB 정도가 요구됩니다.

안드로이드의 메모리 정책은 많이들 아시는대로 일단 구동하는 프로세스를 메모리에 올립니다. 

이후 다른 어플이 실행되면 현재 실행중인 어플은 액티비티 형태로 서스펜드 됩니다.

안드로이드에서는 이를 캐시된 프로세스 라고 표현합니다.

다음에 다시 그 프로세스가 사용될때 빠르게 가져다 쓰기 위해서 잠시 메모리 남는 곳에 맡겨두는 셈입니다.

비유를 하자면 책상에서 영어공부를 하다가 수학공부를 해야지 할때 

영어책을 책꽂이에 반납하지 않고 잠시 책상 옆으로 밀어두는 것과 같은 모습입니다. 

여기서 책상이 메모리가 되고 책꽂이는 스토리지가 되겠죠..

음악 재생이나 기타 포그라운드로 실행중이 아닌경우는 대부분 이경우에 메모리는 차지해도

프로세서의 자원은 점유하지 않습니다. PC의 OS와는 이부분이 다르죠.

이런식으로 캐시된 프로세스가 하나씩 쌓이다보면 언젠가는 메모리가 꽉 차게 됩니다.

그럼 가장 필요없는 프로세스부터 메모리에서 퇴출되고 퇴출된 프로세스는 시스템 에 따로 기억이 됩니다.

이를 안드로이드의 학습기능중 하나라고 불립니다.

이 프로세스의 퇴출이 적으면 성능 이 더 좋은거 아니냐 하시는분들도 있겠지만

이 퇴출빈도가 적당히 유지되야 학습내용이 많아지고 자주 사용되는 프로세스를 OS에서 기억하고 판단해서

가장 필요없는 프로세스부터 퇴출시킵니다. 자주 사용하는 어플은 메모리에 액티비티 형태로 존재하여

필요할때 빠릿빠릿하게 가져다 쓰는 학습을 하게 됩니다.

진저브레드 부터는 이러한 학습효과때문에 Task Killer의 사용을 권장하지 않습니다

Killer로 종료된 프로세스는 학습이 이루어지질 않기 때문입니다.


1GB의 램을 가진 안드로이드 폰의 가용램은 830메가 정도입니다. 

여기서 OS가 기본적으로 잡아먹는 내용과 항상 메모리에 상주해야되는 프로세스들(카톡등과같이 계속 켜져있는 어플)

등을 제외하고도 500메가정도가 남게됩니다.

이를 어플실행만으로 꽉 채우려면 5메가로 계산하면 100여개를 추가로 실행해야 하고..

좀 큰어플들로 계산해서 30메가로 쳐도 15개를 추가로 동시에 실행해야 메모리가 부족하게 됩니다.

사실 OS 정책상 그렇게 프로세스들이 동시에 돌아가도록 허가가 나지도 않을겁니다.

OS의 판단하에 보류된 프로세스드을 자동으로 종료 시킵니다.

이 경우 자주 사용되는 어플로 학습이 이루어진 어플은 되도록 종료가 되질 않습니다.

하지만 일반적인 사용하에서 그런 상황이 발생하기는 드뭅니다.

그렇기에 1GB 이상의 메모리를 가진 하드웨어가 버벅인다면 그것은 메모리 부족이라기보다는

프로세서나 OS상의 한계일 가능성이 큽니다.


특히나 안드로이드 OS는 구조적으로 하드웨어의 향상에 대한 성능 향상이 둔감할 수 밖에 없습니다.

왜냐면 안드로이드 자체가 어플을 가상머신 위에서 돌아가기 때문입니다. DVM이라고 부릅니다.

자바가 느린 이유가 JVM이라는 가상머신위에서 동작하기에 여기저기 이식성은 좋지만 

구조적으로 느릴 수 밖에 없는 이유와 같습니다.

더 쉬운 설명을 하자면

예전 윈도우 95 시절 어플이 하드웨어를 제어하기 위해서는 항상 OS를 거쳐갈 수밖에 없었습니다.

그래서 고성능 게임을 만들 수가 없었죠. 그래서 DirectX라는것이 나왔죠. 

안드로이드는 DirectX가 없는 윈도우에서 프로그램이 하드웨어에 접근하는 것과 비슷합니다. 

안드로이드는 모든것이 DVM을 거쳐야만 합니다.

안드로이드 자체가 다양한 하드웨어에서 돌아가야 하기에 어쩔 수 없는 선택이었지만

이떄문에 하드웨어 스펙에 비해 느려진 속도를 감수해야만 했습니다.

애플사의 IOS는 자사의 하드웨어만을 위한 아이폰에 특화된 OS이기에

모든 지시가 IOS에서 직접 전달됩니다.

그렇기에 카메라든 머든 키면 바로바로 뜨고 터치도 바로 반응하죠..

하지만 안드로이드는 어쩔수 없는 쓸데없는 버벅임이 종종 발생하고 

그로인해 더욱더 고성능의 하드웨어가 필요합니다.

사실 요즘 대부분의 안드로이드폰보다 아이폰3나 4가 스펙면에서 뒤져도 

속도면에서 빠른이유가 그것입니다.


이야기가 잠시 다른곳으로 샌거같은데 다시 본론으로 돌아가서..

현재 안드로이드의 상황으로 봤을때 2GB 램의 필요성은 기대치보다는 크지 않다는게 제 생각입니다.

갤럭시S3 1GB 모델과 2GB 모델을 두고.. 

'음.. 갤s3 LTE는 램이 2GB라 훨씬 빠르군..' 이라고 말할정도는 되지 않습니다.


하지만 2GB 램을 단 안드로이드 폰을 출시한 엘지나 삼성이 바보라는 소리는 아닙니다.

추후 1~2년 뒤에는 2GB의 램이 필요한 시대가 올것은 분명합니다. 

아마 그것을 바라본 투자였겠지요..램을 늘리는데 비용차이가 그렇게 크진 않았을 겁니다.

하지만 스마트폰 약정기간이 1~2년임을 감안할때,

굳이 2GB 램이 필요하다며 폰을 바꾸실 필요는 없다는 말씀..


그냥 스마트폰에서 2GB의 메모리는 필요 없다기 보다는 

아직 1GB 메모리를 아쉬워할 필요는 없다. 정도로 읽어주셨으면 좋겠습니다.

지금 스마트폰을 구매해야 하는데 1GB의 램과 2GB의 램이 탑재된 모델중 선택해야 한다면

2GB 램의 폰을 구매할 것이고 타인에게도 그리 권할 것입니다.

최근 2GB 램이 탑재된 안드로이드폰이 출시되면서 당장 2GB로 바꾸지 않으면 큰일날 것처럼 쓰여진 알바성 글들이

인터넷에 많이 보이길래 한번 적어 보았습니다.



메모리가 다른 두 모델의 동영상 퍼포먼스 비교 올립니다.

편집없는걸로 골랐습니다.

1기가 모델이 메모리 관리차원에서 백그라운드 어플을 자동종료 시키는 모습을 보여줍니다.

하지만 폰을 계속 사용해 가다보면 자주 사용되는 어플들은 영상처럼 쉽게 자동종료가 이루어지지는 않습니다.

타이니팜을 실행시켰을때 보면 LTE폰은 스테이지가 몇개 열려있지만 3G폰은 모두 잠겨있는걸 볼 수있는데

과거 2기가 메모리의 LTE폰은 과거 해당어플을 여러번 실행시킨적이 있음을 뜻합니다.

실제로 사용해보면 메모리의 여유가 이렇게 많음에도 캐시된 프로세스가 저렇게 계속적으로 종료되지는 않습니다.


2기가의 캐시프로세스가 당연히 많기에 유리하지만1기가가 버벅인다고 생각되지는 않네요..










댓글은 언제나 큰 힘이 됩니다. 

작성일이 오래 지난 글에 달린 댓글도 확인합니다. 질문과 의견은 언제나 환영 합니다.

이 글이 유용하셨다면 하단에 손가락 한번 클릭 해 주세요.