본문 바로가기
카테고리 없음

모바일 메모리 테스트 3편

by 대마왕J 2012. 3. 12.

모바일 메모리 테스트 마지막 편입니다 @_@

이미 이전에 캐릭터의 메모리 테스트가 따로 진행되었고,
이어서 배경의 메모리 테스트가 따로 진행되었습니다.

PC 버전 테스트할 때에는 생각보다 오차가 크지 않아서 다행이었습니다만
모바일 버전의 오차는 생각보다 비율이 큰게 좀 문제입니다. 데이터 자체가 워낙 작아서 말이지요.

어쨌거나 최종적으로 느낌상 약 10% 의 오차는 허용해야 하지 않을까...
심하면 20% 까지도 각오해야 하지 않을까 라는 느낌이었습니다.

어쨌건 길고 길었던 모바일 메모리 테스트를 오늘로 끝내려 합니다.
왜냐면 3.5 업그레이드 이슈가 시작되어서 말이지요.
지금 TA들이 열심히 뛰고는 있습니다만, 저도 해 봐야지요 :)




이번 테스트는 최종편으로, 기준이 될 만한 맵인 smallcity에서 캐릭터를 10마리 ~40마리 띄워 보았을때의 메모리 체크입니다.

완벽히 다른 40마리를 만들고 싶었지만, 그 정도의 그래픽 데이터가 준비되지 않아서.. OTL
말이라던가 애니메이션 데이터들은 공유되어서, 완벽히 40마리의 다른 데이터라고 볼 수는 없습니다.
그렇지 않아도 오차율이 워낙 높아서, 그냥그냥 보는거지요 뭐.


테스트는 대충 이런 모습으로 되었습니다.

테스트 할 때 사용한 툴은 역시 ADB Shell.

결과는 다음과 같습니다. 단위는 kb
처음에 켰을 때와, 10분 쯤 지났을때의 메모리가 달라서 두 번씩 테스트 했습니다.



빌드 옵션에서 다이나믹 batch를 켜보고 꺼봤지만, 별 차이가 없어서 이후부터는 그냥 진행하였습니다.
하긴, 말이나 몇몇 애니메이션만 공유될테니 큰 차이는 없었겠지요 .



첫 번째 줄은 ADB Shell에서 체크된 메모리입니다. 40마리 테스트 했을 때, 최대 60메가까지 메모리 점유를 하는 것을 볼 수 있습니다. 10마리 점유했을 때에는 36메가 정도였습니다 (주: 1024로 나눠야 정확하지만 그냥 하겠습니다)

하지만 안드로이드에 빈 씬을 올리기만 해도 24메가가 점유되는 현상을 발견하였으므로 그 용량을 빼야 정확한 그래픽 데이터의 용량이 나오게 됩니다.


그러므로 사실상 40마리일때 최대 그래픽 메모리는 35메가 정도로 예상할 수 있습니다.
10% 의 오차로 생각했을 때, 35메가면 최대 40메가. 즉 한계까지 사용한 데이터네요. 이펙트와 인터페이스도 들어가지 않은 상태에서 이 정도면 상당한 양입니다.

캐릭터와 배경에서 순수하게 쓸 수 있는 메모리는, 이전에 밝혔듯 최대 30메가이며, 가능하면 이보다 아래로 사용되기를 바라는 상태입니다.


인터페이스의 데이터가 모바일에서는 무시하기 힘든 양이기 때문이지요.
그러므로 여기에서는 , 대략 짐작컨데 캐릭터 20~30마리가 한계일듯 합니다.
smallcity 맵에서 , 캐릭터 20~30마리가 모이면 총 메모리가 20~30메가가 되거든요.


다행히 리소스는 예상한 정도의 수치이고, 더 다행한 것은 그래픽 리소스가 프레임을 심하게 잡아먹지 않는다는 것입니다.
 테스트에 의하면, 40마리가 총출동해도 겔럭시 S 에서 (구형인!!!) 30프레임 이상을 충분히 보장받았습니다.

물론 로직에서 얼마나 잡아먹을것인가가 큰 변수인건 확실합니다. 간단한 모바일 게임이 아니라 , 프로그램적으로는 PC게임과 맞먹는 복잡함을 지닌 게임이기 때문이지요!
나중에라도 프레임에 여유가 생긴다면 쉐이더나 후처리 효과에 집중하면 퀄리티를 더 올릴 수 있을 것으로 보입니다.






확인차, 캐릭터 1마리가 먹는 평균 메모리를 계산해 보았습니다.

이전에 캐릭터만 체크했을 때, 캐릭터가 차지하는 메모리가 마리당 1.3메가였던것에 비하면 꽤 많은 양이 줄었습니다.
그렇지만 증감 추세를 보았을 때, 1~3 마리였을 때에 1메가 정도 차지할 것이라는 것을 예상할 수 있을만큼의 수치였으며, 캐릭터가 많아질수록 batch가 동작하면서 1마리당 점유율이 낮아지는 것도 볼 수 있습니다.

이 부분은 좀 더 오차를 줄이기 위해서 면밀하게 테스트 하면 좋겠지만, '캐릭터는 한 마리당 대충 1메가 정도 먹는다' 라고 넉넉하게 생각해도 괜찮을 것이라 보이기 때문에 세부 테스트는 패스하겠습니다.



반응형

댓글