2012-08-14 1 views
0

XMLDocument 클래스를 여러 번 사용하여 XML 문서를로드하고 구문 분석 할 때 메모리가 부족하다고 생각되는 Android 용 Mono 응용 프로그램이 있습니다.Android 애플리케이션 용 Mono의 힙 크기는 어떻게 증가합니까?

가비지 수집기에서 사용할 수있는 메모리가 7367K 밖에되지 않는다는 것을 알 수 있습니다.이 메모리는 상당히 낮습니다.

구성을 통해 또는 런타임에 어떻게 증가시킬 수 있습니까?

답변

0

XmlDocument에 버그가있어 일부 상황 (순서대로 큰 XML 파일 (~ 180K)로드)에서 오류가 발생하는 것으로 나타났습니다. 이 사실을 Xamarin에보고하여 조사를 더 진행할 수 있는지 알아 봅니다.

대신 XmlTextReader를 사용하도록 코드를 변환하면 메모리 동작이 변경됩니다. 이제 시스템은 GC주기 중에보고 된 힙 크기를 동적으로 증가시킵니다. 크기는 필요에 따라 위아래로 이동하며 아무 것도 충돌하지 않습니다.

XmlDocument 코드에서 힙 크기를 늘리는 대신 충돌이 발생했습니다.

0

각 애플리케이션에 사용되는 안드로이드의 가상 머신 메모리는 상당히 제한적입니다. 대부분의 경우 16MB, 일부 경우 24MB입니다. 나는 또한 그 한계를 보았다. 먼저 응용 프로그램에 메모리 누수가 없는지 확인해야합니다. 충분하지 않은 경우 가비지 수집기 (http://docs.xamarin.com/android/advanced_topics/garbage_collection)로 전화를 걸어야합니다. GC를 호출하면 응용 프로그램의 속도가 느려질 것이라는 점도 명심해야합니다.

누구에게 더 좋은 옵션이 있다면 그것에 대해 매우 기쁘게 생각합니다.

+0

내 디버그 출력에 다음과 같은 줄이 있는데, 할당 된 크기는 7MB뿐입니다. GC_CONCURRENT는 247K, 594는 6943K/7303K, 2ms + 2ms는 일시 중지되었습니다. – MindJuice

관련 문제