지하철이나 버스에서 아이폰을 사용하는 사람들을 많이 보면서 아이폰이 정말 많이 팔리기는 팔렸나보다 하는 생각이 들었다. 그런데, 최근 아이폰을 사용하는 사람을 보니 어플 실행시키고 이거저거 하다가 마지막에 슬립시키기 전에 홈버튼 두번 누르고 히스토리를 길게 눌러서 실행중인 어플을 종료시키고 슬립시키는 경우를 몇번이나 봤다. 슬립시키기 전에 실행중인 어플을 항상 종료시키는지 홈버튼을 두번 눌러 나온 히스토리에 프로그램이 하나도 떠있지 않았다. 카카오톡이나 문자메시지, 심지어 전화까지 확실히 삭제시키는 모습을 자주 보았다. 그래서 메모리 관리에 대해 간단히 써보고자 한다.

애플 제품의 메모리관리의 기본은 OS에게 맡겨두라는 것이다. 애플 제품은 보통 빈 메모리가 있으면 계속 메모리에 프로그램을 올려서 실행하고 빈 메모리가 없으면 오랫동안 사용하지 않은것부터 종료시키거나 메모리를 비우는 방식을 사용한다.

좀더 자세히 살펴보면, 애플의 메모리는 크게 4가지로 분류된다.
1. Free : 이건 비어있는 메모리이다. 프로그램이나 데이터가 바로 로드될 수 있는 영역이다.
2. Active : 이부분은 최근에 읽히거나 사용된적이 있는 메모리이다.
3. Inactive : 이부분은 내용은 들어있지만 최근에 읽히거나 사용된적이 없는 메모리이다.
4. Wired : 이부분은 절대로 내려가지 않는 메모리이다. 주로 OS 등이 들어있다.

처음에 프로그램이 시동되면 Fee 영역에 올라가고 실행된다. 하지만 Free 영역에 빈 공간이 없다면, Inactive 공간에서 오래된 부분을 삭제하고 (프로그램을 종료시키고, 어차피 실행시키는 중이 아니다.) 그 공간에 올려서 실행시킨다. iOS나 OSX나 동일하다. 둘 모두 커널은 같은 종류를 사용하니 다를 이유가 없다. 즉 아이폰이나 아이패드에서 굳이 히스토리를 불러와서 종료시킬 필요가 없다. 맥에서도 프로그램을 종료시켜도 바로 Free로 내려가지 않고 여전히 메모리에 내용을 저장해두고 Inactive로 놔둔다. 그래야 다음에 같은 프로그램을 다시 실행시킬때 메모리에 있는 내용은 남겨두고 나머지만 로드하다보니 더 빨리 로드된다.

혹시 메모리가 사용하는 전력을 아끼기 위해서 일일이 종료시킨다면.. 효율도 별로 없는 일에 시간을 투자하는것이라 말하고 싶다. 프로그램 종료시키는 시간동안 화면 켜져있고, 다시 프로그램 실행시킬때 걸리는 시간과 I/O에 사용되는 전력 등을 고려하면 그다지 효율적이지 않을것이다. (정확히 측정이나 계산해보지는 않았지만..)

 즉 애플 제품은 사용자가 굳이 메모리에 대해 열심히 신경 쓸 필요가 없다. 귀찮게 일일이 종료시키지 말고 그냥 편하게 사용하는것이 정신 건강에도 좋고 손가락도 편하고 아이폰도 편하다.
 
  • 2011.04.19 14:55

    비밀댓글입니다

  • BlogIcon zipi 2011.04.19 15:00 신고

    음.. 일단 OS가 어느정도 제대로 관리해 줘서 괜찮은데...
    전 뭔가 메모리가 부족하면 불안한 느낌(?)이 들어서 매번 꺼줍니다.

    물론 수동이 아니라 MultiCleaner이던가.. Activator로 상태바 누르고 있으면 모든 어플 종료 시키게 해서 한번해 종료 시킵니다.

    메모리 관리가 잘 되는거 같은데, 항상 여유 공간을 남겨두는 버릇이 생겨서..
    터치 1세대 사용하다 보니 습관이 되어 버렸습니다. ㅎㅎ. 적은 메모리 1세대.
    메모나 메일 같은겨 켜 있다 보면 다른 어플 구동이 느려지는 느낌이 들더군요.
    터치 1세대가 워낙 구형이라 메모리 때문인지 성능때문인지 몰라도 일단 메모리 확볼르 해놔야
    마음이 진정이 됩니다. ㅎㅎ

    • BlogIcon drzekil 2011.04.19 15:16 신고

      그게 느낌이라는거죠.. 자유로와 지시면 편합니다.. 물론 그게 처음에는 쉽지 않겠지만요..^^
      저도 첨에 맥으로 스위칭 하고 나서는 이거저거 관리해야 할것 같아서 매우 힘들었습니다만..
      이제는 그냥 놔둡니다.. 그게 최선인것을 아니까요.. 그러고 나니 정말 맥이 편하구나 하는 생각을 하게 되는것 같습니다..

  • BlogIcon 모모냥이 2011.04.19 15:57

    그냥 내버려둬도 되는건가요 ?

    뭔가 느낌이, 어플을 좀 많이 실행시켜놓고, 게임 하려고 게임어플을 켜고 한참 집중하다보면, 팍 하고 어플이 꺼져버리는 바람에 ... 기록을 날린게 한두번이아니라 ㅠㅠ

    혹시나해서 탭소닉 할땐 꼭 필요한거 빼놓곤 다 실행 중지 시켜놓거든요

    • BlogIcon drzekil 2011.04.19 22:16 신고

      내버려 둬도 되는게 정설입니다.. 정 걱정되면 가장 최근에 사용한 앱들 위주로 죽여주는게 맞습니다. 먼 과거의 앱들은 히스토리에만 남아 있을 뿐 메모리에 올라와 있지도 않거든요..

      iOS에서 특별한 앱이 아니고서는 홈버튼을 누르는 순간 실행중지됩니다. 다만 메모리에만 올라와 있을 뿐이죠..

  • BlogIcon GOODgle 2011.04.19 16:35

    예외적으로 몇몇 백그라운드에서 계속 실행되는 앱도 있습니다. 예를들어 올래네비 같은 것들 ... 그런 것들은 실행 후 꺼두시는 게 좋습니다. 박대리를 잡아먹죠 ^^

    • BlogIcon drzekil 2011.04.19 22:17 신고

      그런 예외는 예외죠..^^ 네비같은것은 설정이 가능했던것 같습니다. 백그라운드로 동작 여부를 정하는 식으로 말이죠..

  • cookins 2011.04.20 02:19

    아이폰에선 항상 그런 건 아니지만 다 죽이고 나면 대체로 빨라지기는 하더군요. 특히나 메모리 많이 먹는 것들이 떠 있으면 체감할만큼 됩니다. 백그라운드에서 필요없이 배터리나 밴드위스 소모하는 앱들을 중단시키는 의미도 있구요. 그리고 메모리 점유도 그렇지만 recent app들 떠 있는 것도 불편해서 가끔씩 RemoveBG를 써서 한번에 정리하는 편입니다. 반면 맥에선 메모리 관리같은 건 잊고 살지요. 사실 요샌 램은 남아도는 분위기라 맥이나 윈도나 딱히 관리할 것도 없긴 하지요. 그래도 2기가 맥북에어가 문제나 느려짐없이 잘 도는 걸 보면 기특하긴 합니다. 예전 맥에서 어플 별로 메모리 설정하고 Ram Doubler같은 걸로 짜내서 쓰던 생각하면 세상 참 많이 좋아졌습니다. :)

    • BlogIcon drzekil 2011.04.20 11:43 신고

      처음에는 좀 느려질수 있습니다. 왜냐하면 앱을 로딩할때 메모리가 부족하면 백그라운드 앱을 죽일 시간이 필요하니까요.. 죽일때 그냥 죽이지 않고 필요에 따라 상태를 저장도 해야 하고 그런 시간이 필요하죠.. 또한 iOS에서는 백그라운드에서는 일반적으로 메모리에만 떠있고 특별히 실행되지 않습니다. 따라서 배터리나 밴드위스를 소모하지 않죠.. 물론 일부 예외적인 앱들이 있긴 합니다만, 일반적으로 iOS의 앱들은 홈버튼을 누르는 순간 CPU를 점유하지 않습니다. 그래서 짝퉁 멀티태스킹이라는 이야기도 들었죠..

      맥에서 메모리가 부족해지면 페이지아웃->스와핑이 일어나게 되고 이게 엄청난 성능 저하를 가져옵니다만.. 프로그램 종료를 잘 시키면 그런 일은 거의 생기지 않습니다.. 하지만.. 프로그램이 많이 떠있다면 스왑으로 인한 성능저하가 매우 큽니다.. 맥북에어의 경우 HDD 대신 SSD가 들어있어서 스왑으로 인한 성능 저하가 상대적으로 좀 적긴 합니다..^^

  • 이윤석 2011.04.20 03:23

    애플제품이라면 맥osx도 그런거군요? 저도 뭔가 다중으로 켜놓으면 다른작업할 기운을 빼는거같아서 꼭 사용하지않는것돌은 끝까지 종료시키곤 하는데말이죠//

    • BlogIcon drzekil 2011.04.20 11:43 신고

      기분인겁니다..^^ 맥에서도 스왑만 생기지 않으면 성능에 거의 영향을 미치지 않는다고 보는게 맞습니다.

  • vam 2011.04.20 10:30

    윈도우 시스템이 만들어 준 불안심리가 아닐까 하네요. ㅎㅎ. 오늘도 좋은 정리글 잘 보고 갑니다. 감사합니다.

    • BlogIcon drzekil 2011.04.20 11:44 신고

      윈도도 비슷한 방법을 쓸겁니다.. 다만.. 윈도는 98때의 악명이 지금까지 이어온 경우인것 같습니다.. 요즘 윈도는 많이 좋아졌어요..^^

  • BlogIcon bum 2011.04.20 11:37

    알고 있어도 불안 심리 때문에 그렇기도 한 것 같습니다. 저는 왠지 배터리가 빨리 닳는 느낌이 들때가 있는데 이럴때는 모든 suspended app도 종료를 해줍니다.

    특히 GPS 사용하는 앱들은 조심을 해야 겠더라구요. GPS, 음악앱. suspend 되어도 이 기능들은 동작을 하기 때문에 배터리가 위협받더라구요.

    • BlogIcon drzekil 2011.04.20 11:46 신고

      예.. 불안 심리를 떨치는게 어렵긴 하지요..^^

      GPS, 음악플레이는 제대로된 멀티태스킹을 지원하니 종료시켜야죠.. GPS, 음악플레이가 될 경우 메인 화면에서도 위에 아이콘으로 보여주자나요..^^

      또한 일부 잘못 만들어진 앱들이 문제를 일으키는 경우도 있는것 같습니다.. 그런데 그런 앱들이 지금은 거의 없는것 같아요..

  • BlogIcon 후레드군 2011.04.20 22:11 신고

    윈도우의 메모리 관리도 비스타부터는 자동으로 알아서 다 관리하고 꼬이는 일이 거의 없기 때문에 그냥 되도록이면 램 많이 꼽아 두고 실사용에서는 그냥 편하게 쓰면 된다고 생각합니다- 말씀하신 것처럼 윈도우 9x~XP까지에서의 이미지가 상당히 작용을 하는것 같습니다.

    어쨌거나 잘 보고 갑니다 :D

    • BlogIcon drzekil 2011.04.21 09:50 신고

      윈도도 많이 좋아졌죠.. 다만 과거의 악명이 아직도 발을 잡고 있는것 같습니다..^^ XP만 해도 꽤 좋은것 같아요..

  • 프나 2011.04.21 09:10

    좋은정보 보고갑니다 ^^ 맥북, 아이폰4, 아이팟을 쓰는데 항상쓰는 어플을 제외하곤 지우는게 습관화 되어있었는데 막상 보니 꼭 그럴 필욘 없는거 같네요.
    그런데 저의 경우에 한글2007 맥버전을 사용시에 창을 닫고 앱에 불만 들어와있는데도 리소스를 잡아먹고 시스템속도를 엄청나게 저하시키는걸 봤습니다. 아무래도 이건 앱 자체의 문제겠지만 아이폰4는 몰라도 아직 맥에선 제대로된 호환이 안되는 국산프로그램이 상당히 많은것 같습니다. 그래서 가급적 꺼두는게 좋을거 같구요. 솔직히 아이폰4는 저도 아직 메모리부족! 이메세지를 7개월째 쓰지만 한번도 보질 못했네요 ^^.
    물론 앱 8개정도만 항상 실행시켜놓은 습관이 있긴 했는데 동생이 20개씩 실행시켜도 느려짐이 적더라구요. 그이유를 몰랐는데 여기서 보게되었네요 ㅎㅎ
    근데 히스토리만 저장된다고 하셨는데 히스토리가 어떠한 형태로 저장되느냐에 따라서 딜레이를 유발할수 있지 않을까요? 램에 히스토리가 저장되어버리면 히스토리가 많은 어플이나 어마어마한 어플의 수 히스토리가 램에 저장되어 버리면 이또한 램을 많이 잡아먹게 될텐데요...
    물론 하드에 저장이되는거라면(아이폰에선 ssd겟죠) 문제가 없겠지만요 ^^

    • BlogIcon drzekil 2011.04.21 09:57 신고

      맥의 경우 프로그램이 종료되지 않고 창만 닫으면 메모리에서 내려가지 않습니다. 결국 메모리가 부족해지면 스왑(메모리의 일부를 디스크에 내려서 메모리를 확보하는 기술)이 일어나고 디스크의 느린 속도때문에 큰 성능 저하를 가져오지요.. 특히 한글2006(맥용은 2006이 최신입니다.)은 ppc용이기때문에 인텔 머신에서 동작하려면 로제타까지 사용해야 하므로 메모리나 시스템 리소스를 더 많이 사용하지요..
      히스토리는 메모리에 저장되도 그다지 많은 용량을 차지하지 않을것 같습니다. 히스토리는 단순히 최근에 실행한 앱의 목록입니다. 따라서 앱 하나당 4KB를 차지한다고 해도 100개 해봤자 400KB입니다. 요즘 메모리의 양을 생각하면 정말 작지요.. 오히려 디스크에 저장되면 디스크의 느린 속도때문에 속도저하가 더 클지도 모릅니다..

  • BlogIcon Ish 2011.05.01 21:22

    형 세형이에요~
    전에 어디에서 봤는데 재부팅은 어떤가요? 실제로 게임이 엄청 버벅이다가 재부팅 한 번 해주니까 깔끔해졌던 기억이 있거든요. tiny wings였는데... 컴퓨터랑 똑같아서 가끔은 재부팅 해줘야 한다! 는 얘기 듣고 적어도 일주일에 한 번은 굳이 껐다가 켜주고 있거든요. 지킬 형님의 고견을 듣고 싶사옵니다.

    • BlogIcon drzekil 2011.05.02 17:29 신고

      어익후.. 세형이가 여기까지..
      공식적으로는 리부팅이 필요 없다는것이 내 생각인데.. 아무래도 사람이 만들어낸거다 보니 오류가 아예 없을수는 없을테고 리부팅하면 깨끗해지니까 좋아질수는 있겠지..
      내생각엔 정말 이상하면 리부팅이 도움이 될수 있지만 예방차원이 재부팅은 구지 필요 없을듯..