2011-12-17 4 views
0

andengine을 사용하여 게임을 개발했습니다. J2ME 게임 종료, 난 널 모든 객체를 만든System.gc는 android (Andengine)에서 작동합니다.

예 : 안드로이드에서

Image img; 
Sprite s1; 

When exit application , 

img=null; 
s1=null; 

난으로 System.gc()를 사용 또는 내가 널 (null)로 만들어 모든 질감, textureRegion와 스프라이트를 만들 필요가 , 언제 appliaction 종료?

+1

종료 할 때도 할 필요가 없습니다. –

답변

2

Java 가비지 수집에서 처리해야합니다. 당신은 그렇게 할 필요가 없습니다.

그러나 나는 그러나 자바가 자신의 의지를 실행,

System.gc()

그냥 가비지 컬렉션이 제안하는 JVM에 대한 힌트 등등 열려있는 연결, 파일 핸들을 닫을 것이다.

0

안드로이드 가비지 컬렉터에서 수동으로 GC를 수동으로 호출하는 것이 좋습니다. GC는 휴리스틱 알고리즘을 중심으로 구성되어 있으며 자체 알고리즘을 사용하면 최상의 결과를 얻을 수 있습니다. GC를 수동으로 호출하면 성능이 저하되는 경우가 있습니다.

일부 경우에는 드문 경우이지만 특정 GC가 잘못 처리되는 경우가있을 수 있으며 GC를 수동으로 호출하면 성능이 향상 될 수 있습니다. 이는 모든 경우에 최적의 메모리를 관리하는 "완벽한"GC를 구현하는 것이 실제로 불가능하기 때문입니다. 이러한 상황은 예측하기 어렵고 많은 미묘한 구현 세부 사항에 의존합니다. "우수 사례"는 GC를 자체적으로 실행하는 것입니다. GC에 대한 수동 호출은 예외이며 실제 성능 문제가 정당하게 목격 된 후에 만 ​​구상되어야합니다.

봐 난 당신이 명시 적으로 System.gc()를 호출하지한다고 생각 Garbage collector in Android

5

질문에 .. (루프 내부 객체의 생성과 같은) 객체의 불필요한 생성을 방지에 더 많은 노력을 지출하는 것이 좋습니다 . Android OS가이를 처리합니다.

나는 그것이 시스템의 모든 garbages를 청소하기 위해 응용 프로그램을 느리게 의미를 "당신의 응용 프로그램에서 System.gc()를 호출하면 완전한 사회의 조명을 점등하기 위해 가정에서 전기 연결을 제공하는 것과 같다"... ....

N_JOY.

+1

고마워, 아이디어를 가지고있어. 좋은 예가 – JohnRaja

+0

당신은 환영합니다 :). –

+0

비트 맵이 외부 힙에 빡빡한 경우 System.gc()를 호출하면 OutOfMemoryError가 발생하지 않으므로 상황이 발생하여 도움이되는 경우가 있습니다. 비트 맵을 효율적으로로드하고 언로드하면 비트 맵의 ​​필요성을 방지하는 것이 이상적이지만, 많은 힙이 작은 힙 한계가있는 장치에 많은 이미지를로드해야하는 경우 매우 어려울 수 있습니다. 저는 System.gc()가 따옴표만큼이나 무의미하다고 생각하지 않습니다. 잠깐 동안 집에 전력을 공급할만큼 충분한 주스를 가진 무정전 전원 공급 장치를 갖는 것과 같습니다. –

관련 문제