2013-02-01 1 views
1

이 문제가 있습니다. Android: Screen orientation error + VM won't let us allocate x bytes 그래서 Eclipse 메모리 분석기를 다운로드하기로 결정했습니다. 내 오류가 나타 났을 때 나는 그것을 실행하고 용의자 3 문제가 있지만 그것이 어디에서 왔는지 이해할 수 없다. 내 문제는 메모리 누수로 인한 경우 유출 가능성은 2.2 걸릴 는 + 난 정말 모르겠어요, B 공간 enter image description hereAndroid : Eclipse 메모리 분석기로 누출 감지

문제 용의자 1

2,094 instances of "java.lang.Class", loaded by "<system class loader>" occupy 789,200 (33.76%) bytes. 

Biggest instances: 
•class android.text.Html$HtmlParser @ 0x4018d3f0 - 126,632 (5.42%) bytes. 
•class org.apache.harmony.security.fortress.Services @ 0x400e2e58 - 53,880 (2.30%) bytes. 
•class com.android.internal.R$styleable @ 0x400882c0 - 38,072 (1.63%) bytes. 
•class libcore.icu.TimeZones$CachedTimeZones @ 0x40444fa8 - 37,712 (1.61%) bytes. 
•class android.R$styleable @ 0x40055940 - 37,640 (1.61%) bytes. 
•class android.content.res.Resources @ 0x40075178 - 36,032 (1.54%) bytes. 
•class android.text.AutoText @ 0x40178980 - 31,656 (1.35%) bytes. 


Keywords 
java.lang.Class 

문제 용의자 2

128 instances of "org.bouncycastle.jce.provider.X509CertificateObject", loaded by "<system class loader>" occupy 455,112 (19.47%) bytes. These instances are referenced from one instance of "java.util.Hashtable$HashtableEntry[]", loaded by "<system class loader>" 

Keywords 
org.bouncycastle.jce.provider.X509CertificateObject 
java.util.Hashtable$HashtableEntry[] 

문제 용의자 3

6,822 instances of "java.lang.String", loaded by "<system class loader>" occupy 418,104 (17.89%) bytes. 

Keywords 
java.lang.String 

누출이 있다고 생각합니까? 내가 올린 글에서 말할 수 있을까요? 감사합니다.

답변

0

Android에서는 활동 컨텍스트가 누출되기 쉽습니다. 따라서 메모리 누수를 발견하는 데 가장 자주 사용되는 방법은 OQL 탭을 열고 'select * from instanceof android.app.Activity'를 입력하는 것입니다. 그러면 얼마나 많은 액티비티 인스턴스가 있는지 알 수 있으며, 자신의 판단에 따라 누출 여부를 알 수 있습니다. 또한 Activity 인스턴스 중 하나를 마우스 오른쪽 버튼으로 클릭하고 'GC 경로'-> '모든 약/약점/팬텀 참조 제외'를 클릭 할 수 있습니다. 그러면 체인의 활동에 대한 참조를 볼 수 있습니다. 행운을 빈다!