기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

ODROID-T를 4개 사서 안드로이드 App. 개발용 시료로 사용하고 있습니다.

 

한데 일전에도 여기 질문을 올렸으나 해결되지 않은 문제인 Heap Momory 부족 때문에 골머리를 앓고 있습니다.

 

저희가 만든 App. 에서 조금만 기능을 수행해 보면 Heap Momory 부족 때문에 App. 이 죽어서 테스트가 전혀 되고 있지 않습니다.  아시다시피 ODROID-T는 해상도가 기존 안드로이드가 적용된 스마트폰 대비 아주 높아서 화면에 뭔가를 뿌리려고 하면 메모리를 많이 잡아먹는 것 같습니다.  그래서, 화면이 작은 디바이스를 위해 적용된 기본 안드로이드 사양만으로는 해결되지 않고 App.를 위한 Heap Memory 영역을 별도로 더 크게 커스터마이징 해야 할 것 같습니다.

 

ODROID-T에서는 몇개 기능을 수행할 수 없이 바로 죽지만 삼성전자의 태블릿PC(갤럭시탭)에서는 전혀 문제없이 정상 작동합니다. (내부적으로 Heap Memory가 48MB로 올렸다고 합니다.  ODROID-T는 16MB인듯 합니다.)

 

일전에 이런 문제현상에 대해 질문 게시판에 올렸는데 다른 답변은 없었고 이제현님께서 " Spare Parts에서 Compatibility Mode를 해제해 보라"고 하셨는데 이 방법으로도 해결점은 찾을 수 없었습니다.  현재 저희가 구매한 4개의 ODROID-T는  개발 시료의 역할을 수행하지 못하고 그냥 방치된 상태입니다.

 

ODROID-T를 구입하신 분들 중에 저희처럼 App.을 개발하기 위해 구매하신 분들이 별로 없는지 이 문제가 별로 언급되지 않고 주로 H/W 관련 게시글들만 있네요.  하지만 제 생각에 ODROID-T를 통해 App. 개발하시려는 분들도 꽤 많을텐데 이 메모리 문제가 해결되지 않으면 저희처럼 ODROID-T가 무용지물이 될 거라는 생각입니다.

 

시간과 인력이 충분하다면 저희도 내부 플랫폼을 분석하며 커스터마이징하고 싶지만 이는 언감생심이고 저희는 개발 일정 맞추기 빠듯해서 엄두를 못내고 있네요.

 

ODROID-T의 메모리 부족 문제가 빨리 해결되길 바라면서 줄입니다.


이제현

2010.07.07 19:12:38
*.90.137.102

가능하시다면 간단하게 1MB씩 할당해서 쓰기 읽기를 해보시고, 추가로 1~2MB씩 계속 할당하면서 동일하게 테스트를 해보시고 어느 정도(임계치?)에서 Out of memory가 발생하는지 확인 부탁드립니다.

전체 메모리 512MB중 플랫폼에서 보이는 Heap은 200MB이상 남아 있고, 어플당  heap은 20MB 정도밖에 할당이 안되는것 같네요. 

저희도 한번 확인해 보겠습니다. 최대한 빨리 해결해 보도록 하겠습니다.


그리고 죄송하지만,  Heap 테스트 어플 소스도 부탁드립니다. 저희 자바 실력이 미천하여.....


이길범

2010.07.07 21:23:57
*.94.41.89

Mr. Choi.

 

ODROID-T와 G-Tab의 물리적 DRAM 용량이 차이가 있습니다.

상세한 내용은 따로 메일 주3...^^

최가이버

2010.07.08 04:22:11
*.94.41.89

제가 일례로 화면 해상도 얘기를 했을 뿐 화면 문제 때문에 이런 문제가 발생한다는 뜻은 아닙니다.

 

다만, 화면에 뭔가 뿌리려고 해도 해당도가 높기 때문에 이 넓은 공간에 이미지를 뿌리려면 할당해야 하는 메모리가 많기 때문에 일반 QVGA 정도의 디바이스에서 뭔가 작업하는 것보다 훨씬 많은 메모리를 잡아먹는다는 뜻이었습니다.  즉, 플랫폼의 Graphic 모듈 부분에 문제가 있는 게 아니라 전체적으로 메모리 할당이 너무 작아서 생기는 문제일 거란 뜻입니다.

 

요컨데 QVGA에서 주로 쓰면서 세팅된 안드로이드 기본 상태를 QVGA보다 훨씬 해상도도 높고 화면에 뭔가 리려면 엄청 많은 메모리를 써야하는 오드로이드-T 같은 디바이스에 메모리 할당 부분을 손보지 않고 그냥 팅했고 여기서 실행되는 App.을 개발한다는 건  마치 자전거에 코끼리를 태우려고 하는 것처럼 무리라는 뜻 니다.

 

메모리 관련해서 일전에 이와 관련된 포스팅을 했는데 그때 올린 DDMS의 로그를 다시 참조해보죠.

 

죽었을 때의 로그를 살펴보면...

------------------------------------------

01-06 15:47:39.565: DEBUG/WebBookPageOver(2777): ### setPageSize() width=768.0 height=1360.0
01-06 15:47:39.600: DEBUG/dalvikvm(2777): GC freed 386 objects / 45792 bytes in 33ms
01-06 15:47:39.811: ERROR/dalvikvm-heap(2777): 4177920-byte external allocation too large for this process.
01-06 15:47:39.811: ERROR/(2777): VM won't let us allocate 4177920 bytes
01-06 15:47:39.811: DEBUG/AndroidRuntime(2777): Shutting down VM
------------------------------------------

 

위와 같은 메시지가 나왔습니다.

 

이제현님께서 말씀하신 샘플 코드는 한번 만들어 보도록 하겠습니다.

 

감사합니다.

naviro

2010.07.08 06:45:38
*.181.29.70

QVGA(2048*1536)을 표현하신다는 것은 현재 의료영상 외에 적합한 것이 없어 보이는데요? ODROID-T는 1080p레벨로 SXGA(1280*1024)에 해당하는 것으로 여겨집니다. 부족하지만 하드커널에서의 ODROID-T는 하드웨어적으로 1080p까지 지원을 하며 Heap Memory에는 문제가 없는 것으로 생각됩니다. 원하시는 목적을 달성하기 위해서는 커널에서부터 손을 보아야 할 것으로 여겨집니다.

직접적인 도움이 되지 못해 미안할 따름입니다.

유형목

2010.07.08 09:53:47
*.131.99.183

RTOS를 쓰던 시절, 사용할 프로그램을 추가하려면 프로그램의 태스크(프로세스)이름과 stack size 및 heap size를 일일이 하나씩 지정해줘야만 했던 기억이 새삼 떠오르는군요. 리눅스에서는 그런 삽질 할일이 없을줄 알았는데, 이것참..^^;


구글에서 "dalvik.vm.heapsize"  라고 입력한후 검색하면 안드로이드를 빌드할때 heap size 를 늘려서 빌드할수 있는 옵션을 찾아 볼수 있습니다.  구글링 결과를 살펴보면 64Mbyte 까지 늘려서 사용한 예가 있는것 같습니다. 기본이 16MByte 라고 되어 있으므로 적당히 늘려주면 되겠네요.  프로요(2.2)의  코드를 살펴보니 다음과 같이 되어 있네요. 이전 버전인 2.1 에서는 어떻게 지정해주는지 잘 모르겠네요.




device/htc/passion/passion.mk


...

 42
 43 # This is a high density device with more memory, so larger vm heaps for it.
 44 PRODUCT_PROPERTY_OVERRIDES +=
 45     dalvik.vm.heapsize=24m
 46


heap size를 늘렸는데도 소용이 없다면 진짜로 하드웨어적으로 메모리가 모자라는 것이겠죠.

물론 소프트웨어의 메모리 최적화 문제도 원인이 될수 있겠습니다만..

전호철

2010.07.17 00:34:11
*.140.0.103

<meta http-equiv="content-type" content="text/html; charset=utf-8">제 갤럭시 S 는 dalvik.vm.heapsiz 가 48메가로 잡혀있네요 </meta>

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
6188 안드로이드 마이크 입력이 끊어집니다. [25] GloomyDay 2014-04-03 2976
6187 [ODROID] MediaPlayer RTSP 테스트 중입니다. [1] 규야 2010-03-12 2968
6186 SDRAM 설계변경 [2] 조정근 2008-09-19 2960
6185 Android 단말에서 Rndis Host Driver를 사용할 수 있나요? acedon 2013-05-10 2946
6184 Android nand에 포팅시 kernel panic에 대한 질문입니다. [3] 최종환 2009-03-21 2942
6183 S3C2440 보드에 삼성 CCD 카메라 포팅 질문입니다..[완료] [11] 김창연 2006-09-27 2940
6182 6410 jffs2 사용시 erase block의 의미가 무엇인지요? [3] 윤인성 2009-03-04 2939
6181 [arndale][origen] 커널 2.6이 돌아가는 리눅스 [3] monad 2013-05-02 2931
6180 LX800에 사용할만한 3.5인치 LCD가 [5] 황민순 2008-09-17 2922
6179 S3C6410의 USB 2.0 OTG 질문입니다. [4] 여정휘 2009-02-14 2913
» ODROID-T의 App. Heap Memory 부족 문제. [6] 최가이버 2010-07-07 2911
6177 핼프미 VGA칩 TDA8771질문좀 부디 [2] 노상혁 2007-10-31 2905
6176 [완료] xp설치중 usb 주변기기사용불가한가요? [5] 황철진 2007-05-11 2905
6175 [질문]AESOP-LX800 용 네비게이션 선택? [2] 윤덕배 2007-05-25 2902
6174 [u-boot] 1.1.6 에서의 NAND 부트 관련 [2] 황인용 2009-04-11 2899
6173 S3C6410 MLC NAND 질문입니다. [3] 우한규 2009-05-27 2894
6172 [완료] USB DMB 모듈 추천좀 해주세요 [2] 한영민 2007-05-11 2891
6171 7인치 LCD 관련 문의 및 도움 요청 [3] 차준호 2008-05-22 2886
6170 mknod 메이저 마이너 번호에 대해서 궁금한게 있는데요 [1] biokk 2014-02-17 2881
6169 [질문] LAN카드와 해상도 질문드립니다. [2] 김증일 2007-05-09 2880

사용자 로그인