본문 바로가기

하드웨어/미니기기

iOS4 완탈 A to Z - (4) VM - 가상메모리 적용법


JailBreakMe - 탈옥 [바로가기]
Tiny Umbrella - iOS4 SHSH 백업 / 복원 방법 [바로가기]
Cydia - 소스 추가 / iOS4에서 작동되는 Apps [바로가기]
VM - 가상메모리 적용법 [바로가기]


'VM' 반드시 필요한가?

'VM'은 'Virtual Memory'의 약자로 가상 메모리를 뜻합니다. PC의 경우도 정해진 용량의 RAM뿐만이 아니라 하드디스크 용량의 일부를 가상메모리로 전환해, 더 쾌적한 사용환경을 만들곤 합니다.

이 VM이 iPod에서 꼭 필요한 것이냐고 물으신다면 "반드시 그런것은 아니다"라고 답하겠습니다. 물론 일부 'WeRule'이나 'GodFinger'같은 게임을 돌리거나, Backgrounder로 멀티태스킹을 하는 경우 메모리가 부족해 Crash가 일어나는 경우가 종종 있습니다. 하지만 그것을 모두에게 발생하는 일반적인 경우로 보기는 힘듭니다. 이유는 사람마다 각자의 활용법이 다르기 때문입니다. 따라서 VM이 필수적인 것은 아니지만, 메모리 부족현상을 겪는 분들은 하시는 것도 좋습니다.

iOS4에서는 메모리 부족현상이 심각합니다. iOS4 자체가 무겁기도 하거나와, 멀티태스킹(정확히는 프리징)으로 인해 한번 사용했던 App은 그 목록이 차곡차곡 쌓여만 갑니다. 특히 iPod Touch 2G/2.5G, iPhone 3G 사용자의 경우 메모리 부족현상을 많이 말씀하시곤 합니다. 앞서 필수는 아니라고 말씀드렸는데, 이젠 거의 필수에 가까워졌다고 말씀드려야 할 것 같습니다.


가상메모리 적용법

그동안에는 조금 복잡한 방법으로 가상메모리를 적용했습니다. Cydia의 VM 관련 App을 설치해 가상메모리를 적용했는데, iOS4에서는 아주 간단한 과정만 거치면 가상메모리를 적용할 수 있다고 합니다.

그 이유는 iOS4에는 기본적으로 'VM'이 이미 존재하고 있기 때문입니다. 단지 애플에서 막아놓았기 때문에 사용을 하지 못하는 것이라고 합니다. 따라서 VM을 사용가능하게 바꿔주는 것이 과정의 전부 입니다.

가상메모리에 관한 글(How about some Virtual RAM for your iPhone) - 원본 [바로가기]


우선 첨부된 "com.apple.dynamic_pager.plist"파일을 다운로드 합니다.


그리고 iFunBox로 iPod에 접속합니다.


다운로드한 "com.apple.dynamic_pager.plist"파일을 다음의 경로에 복사합니다.

파일경로

./System/Library/LaunchDeamons

그리고 기기를 재부팅합니다.



다시 iFunBox로 "./var/vm"에 들어가 보면 "iphone_swap"이라는 파일이 생성된 것을 확인하실 수 있습니다. 이 파일의 용량은 기본적으로 64MB입니다. 기존의 방법에서는 iFile을 이용해 Plist파일을 직접 수정해서 강제로 256MB 혹은 512MB로 만들었습니다. 하지만 이 방법은 사용량에 따라 가상메모리량이 변화하므로 64MB라고 해서 걱정하실 필요는 없습니다.



보시듯 GodFinger를 포함해 몇가지 App을 실행하고 있음에도 메모리가 85MB를 유지하고 있습니다.



아무 App도 실행하지 않을 경우 211MB까지 확장된 경우도 있었습니다. 하지만 보통의경우 180MB 정도의 메모리량을 유지하는 듯 보입니다.


필독사항

* 가상메모리를 늘렸다고 해서 수백메가의 용량이 늘어나는 것은 아닙니다. 가상메모리는 내부 저장공간의 일부를 지정해 놓고 "메모리가 부족할 경우 이만큼의 공간을 활용하겠다"는 약속에 불과합니다. 따라서 가상메모리가 필요치 않은 순간에는 거의 이전과 변화를 느끼실 수 없을 수도 있습니다.

* 아무래도 이 방식은 고정된 가상메모리를 운영하는 것이 아닌 "요구량"에 따라 변경하는 것이기 때문에 가끔 메모리 용량이 많이 남았다고 표시됨에도 불구하고 기기가 느려질 수 있다고 합니다. 그럴경우 iFunBox로 "./var/vm" 경로에 들어가 iphone_swap0 파일만 남기고 나머지 파일은 삭제해 주시면 된다고 합니다.

* 만약 이전에 Cydia의 MobileVM을 이용해 가상메모리 작업을 하신 적이 있다면 "./var/vm"의 swap파일과 MobileVM 등을 모두 삭제한 후 시도하시기 바랍니다.