저는 Android 게임 개발을 시작하고 있으며 제가 사용하는 라이브러리 중 하나는 universal-tween-engine 입니다. 저자는 API의 일부 측면이 유용성을 희생 할 정도로 성능 최적화를 기반으로하는 몇 가지 디자인 결정을 내 렸습니다.
프로젝트를 GitHub 리포지토리로 분기하고 API를 정리하는 것을 고려하고 있었지만 Android 성능에 대해 자세히 알지 못합니다. 표준 핫스팟 기반 JVM에서는 해당 플랫폼이이 라이브러리의 풀링 동작을 조기 최적화라고 생각할만큼 충분히 최적화했기 때문에 개체 인스턴스화 및 가비지 수집의 오버 헤드에 대해 너무 걱정하지 않을 것입니다. 생각....
Android (Gingerbread-> KitKat)에서 객체 생성 및 가비지 수집의 성능 특성은 Hotspot과 비교하여 무엇입니까? 동일한 클래스 (그러나 다른 상태)의 새 인스턴스를 반복적으로 생성 할 경우 해당 인스턴스를 풀링 할 가치가 있습니까?
데스크톱 Java 앱과 달리 Android 앱은 현재 Dalvik 가상 머신 에서 실행됩니다 .
가비지 수집은 모바일 장치에서 상대적으로 비용이 많이 들고 성능에 민감한 코드 경로에서 개체 할당을 피하고 싶을 것입니다. 가비지 수집이 수백 밀리 초 동안 앱을 일시 중지하는 것은 드문 일이 아닙니다. 모든 게임에 대해 마지막으로 원하는 것입니다. 목록보기를 스크롤합니다.
물론 이것은 기기에 따라 달라집니다. Android는 하드웨어의 성능 향상 외에도 앱이 사용할 수있는 메모리의 양을 제한합니다. Android는 일반적으로 더 많은 메모리를 사용할 수 있습니다. 저가형 장치에서 실행 중이었습니다.
모바일 장치는 먼 길을 왔지만 고급 장치를 사용하더라도 모바일 장치의 메모리 관리를 무시할 수 없습니다.
먼저 Android (및 일반적으로 모바일 장치)의 성능 / 메모리에 대해 더 잘 이해하는 것이 좋습니다. 따라서 해당 라이브러리의 성능을 변경하면 개선되고 있음을 확신 할 수 있습니다 (항상 측정!). 시작하기 좋은 곳 은 Performace 의 공식 모범 사례입니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다