안드로이드 개발 질문/답변
(글 수 45,052)
에뮬레이터에서 작업중인데요.
좀 무거운 Data를 가지고 놀아야 할 상황이라 메모리를 쫌 써야 될 어플을 작업중인데..
짜꾸 메모리가 없다고 죽네요~
혹시, 에뮬레이터에서 Memory를 늘려 줄수 있는 방법은 없나요?
# cat /proc/meminfo
cat /proc/meminfo
MemTotal: 94212 kB
MemFree: 4464 kB
Buffers: 388 kB
Cached: 27620 kB
SwapCached: 0 kB
Active: 40628 kB
Inactive: 38112 kB
Active(anon): 24220 kB
Inactive(anon): 30172 kB
Active(file): 16408 kB
Inactive(file): 7940 kB
Unevictable: 268 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 51012 kB
Mapped: 14976 kB
Slab: 3388 kB
SReclaimable: 884 kB
SUnreclaim: 2504 kB
PageTables: 3500 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 47104 kB
Committed_AS: 1048148 kB
VmallocTotal: 876544 kB
VmallocUsed: 12492 kB
VmallocChunk: 803836 kB
#
좀 무거운 Data를 가지고 놀아야 할 상황이라 메모리를 쫌 써야 될 어플을 작업중인데..
짜꾸 메모리가 없다고 죽네요~
혹시, 에뮬레이터에서 Memory를 늘려 줄수 있는 방법은 없나요?
# cat /proc/meminfo
cat /proc/meminfo
MemTotal: 94212 kB
MemFree: 4464 kB
Buffers: 388 kB
Cached: 27620 kB
SwapCached: 0 kB
Active: 40628 kB
Inactive: 38112 kB
Active(anon): 24220 kB
Inactive(anon): 30172 kB
Active(file): 16408 kB
Inactive(file): 7940 kB
Unevictable: 268 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 51012 kB
Mapped: 14976 kB
Slab: 3388 kB
SReclaimable: 884 kB
SUnreclaim: 2504 kB
PageTables: 3500 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 47104 kB
Committed_AS: 1048148 kB
VmallocTotal: 876544 kB
VmallocUsed: 12492 kB
VmallocChunk: 803836 kB
#
2010.01.23 15:12:43
단순히 에뮬에서 메모리를 늘려서 땜빵을 한다고 해도 어차피 폰에서 안돌아갈 껍니다. 가용한 메모리를 최대한 잘 이용하셔야 되구요. 임베디드 시스템에선 최대한 memory fragmentation이 적게 발생하게 코딩하는 습관이 어느정도는 필요로 합니다. (단순히 메모리 문제 뿐만 아니라 전체적인 퍼포먼스에도 어느정도는 영향을 끼치죠) 물론 java언어의 경우 c언어와는 달리 garbage collection이 가능하긴 하지만 언제 실행이 되서 fragment가 발생한 memory block들이 머지가 될지는 며느리도 모르다보니 큰 블럭을 계속해서 할당하고 해제할 경우에는 자주 메모리부족에러가 나게 되어있습니다. (free memory의 총용량이 4MB라고 나오더라도 memory framentation이 많이 발생한 상태라면 1MB짜리도 할당 못하고 메모리 부족하다고 징징대죠 ㅡ.ㅡ;;)
2.0 버전 이상의 avd 를 생성할 때는 avd 생성 옵션중에 메모리 설정 있지 않았나요?^^ㅋ