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

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
번호 제목 글쓴이 날짜 조회 수
3528 Odroid-S 디버그 보드에 관해서 질문 드립니다~ [1] 이재영 2010-07-10 482
3527 오드로이드에 froyo 올리기 [3] 길동사마 2010-07-09 668
3526 우분투 파티션에 대한 질문드립니다. [1] 최고운 2010-07-09 676
3525 S5PC100 회로도는 비공개인가요? [1] 고봉석 2010-07-09 637
3524 ODROID-T 에 USB카메라 드라이버 언제쯤 릴리즈 되는지요? [1] 액숀승짱 2010-07-09 964
3523 Odroid-T로 UART 데이터 밀어 넣기에서의 문제 file [1] 독행소년 2010-07-09 589
3522 ODROID-T의 App. Heap Memory 부족 문제 #2 file [2] 최가이버 2010-07-09 3112
3521 linux 2.6.28 S3C6410 작동하는 모드 질문 입니다, [1] 정기만 2010-07-09 580
3520 ODROID-T 를 사용하는데, 구글마켓이 없더군요. 어떻게? [2] 치르르 2010-07-09 771
3519 ODROID-T 를 사용하는데, LAN port 가 없어NFS 환경을 설정할... [2] 치르르 2010-07-08 624
3518 ODROID 디바이스 추가 윤지희 2010-07-08 481
3517 ODROID-T에서 외부장치와 시리얼통신방법 문의 rndmania 2010-07-08 530
3516 노트 PC에 grub rescue> prompt가 뜨는데??? [3] 요셉 2010-07-08 1511
3515 Odroid에서 UART 콘솔로 로그 메세지 출력하기 [1] 범수아빠 2010-07-08 611
3514 au1200 개발 보드에 대한 질문 드립니다. [2] 최고운 2010-07-08 493
3513 webcam 전송 시 BULK 모드로 전송하는법 아시는 분 도와주세요 임리오 2010-07-08 640
3512 카메라로사진을 찍어 PC로 무선통식방식으로 날려주는것을 할려고합니... [2] 땜질매냐 2010-07-07 768
» ODROID-T의 App. Heap Memory 부족 문제. [6] 최가이버 2010-07-07 2911
3510 glibc 소스 중 System Call 하는 부분 좀 알려주세요 박윤상 2010-07-07 511
3509 Odroid-T의 소스를 받아볼 수 있을까요? [3] lived 2010-07-07 476

사용자 로그인