Xamarin에서 OutOfMemoryException 가져 오기
java.lang.OutOfMemoryError. $ (JavaMaximumHeapSize) 값을 늘리십시오. 'java.exe'를 실행하는 동안 Java 메모리가 부족합니다.
내 visualstudio Xamarin 프로젝트에서 메모리 부족 예외가 발생합니다.이 문제를 어떻게 해결할 수 있는지 도와주세요.
빌드 힙 크기를 늘릴 것입니다.
Android 프로젝트> 속성 > Android 옵션 > 고급 > Java 최대 힙 크기를 마우스 오른쪽 버튼으로 클릭합니다 .
선택한 답변이 올바른 방향으로 안내했지만 Visual Studio 2017의 경우 화면은 다음과 같습니다.
애플리케이션 (빌드 프로세스가 아님)의 힙 크기를 늘리려면 AndroidManifest.xml에서 설정할 수 있습니다.
<application android:largeHeap="true"></application>
Visual Studio 2015의 경우 프로젝트-> 속성-> Android 옵션-> 고급 및 힙 크기를 마우스 오른쪽 단추로 클릭하십시오.
Xamarin studio 버전 6.3 및 Visual Studio 7.0.1부터 힙 크기를 늘리는 옵션은 여기에서 찾을 수 있습니다.
Android 프로젝트를 마우스 오른쪽 버튼으로 클릭 한 다음 옵션 을 선택하고 Build / Android Build 를 선택한 다음 Advanced 탭을 선택하고 Java 힙 크기 에서 1G (또는 기타)를 설정 합니다.
1G 힙 크기가 부족하면 리소스 최적화를 시작하십시오.
먼저 동일한 이미지를 메모리에 여러 번 유지하면서 이미지 인스턴스를 복제하지 않는지 확인하십시오. 이를 위해 ffimageloading 라이브러리 ( https://github.com/luberda-molinet/FFImageLoading ) 를 사용하여 빠르고 쉽게 nuget에서 가져옵니다.
그런 다음 사용중인 이미지를 최적화하십시오. 아이콘 이외의 큰 이미지의 경우 투명도가있는 png를 피하고 모든 것을 jpeg로 변환 해보십시오.
그런 다음 원격에 큰 이미지를 업로드했을 때 이미지 대신 미리보기 이미지를 사용해보세요. 서버에서 mini, small, medium, normal, large, xlarge 등 다양한 크기의 미리보기 이미지를 만들고 실제로 필요한 크기의 이미지 만로드합니다. 이는 많은 메모리와 속도를 절약합니다.
또 하나는 메모리 누수입니다. 메시지, 이벤트 처리기 및 기타 항목에서 구독을 취소하지 않은 경우 셀 또는 기타 요소가 여전히 메모리에 상주 할 수 있습니다. 일어날 수 없다고 확신 할 때 여전히 메모리에 이미지로 가득 찬 목록의 여러 복사본을 가질 수 있다고 상상해보십시오. 여기에 더 많은 정보 :
https://forums.xamarin.com/discussion/123876/should-we-unsubscribe-all-events-for-memory-management
내 경험상 메모리 문제는 Xamarin.Forms 앱의 Android 버전에서만 발생합니다. 그리고 항상 큰 이미지를 처리해야합니다. FFImageLoading ( https://github.com/luberda-molinet/FFImageLoading ) 을 사용하여이 문제를 처리했습니다.
당신의
<Image Source="waterfront.jpg" />
와
<ffimageloading:CachedImage Source="waterfront.jpg"
DownsampleToViewSize = true,
BitmapOptimizations = true/>
성능이 크게 향상되고 메모리 문제도 해결됩니다.
Java 최대 힙 크기를 늘리면 효과가 있습니다.
AndroidManifiest.xml의 응용 프로그램 태그에 아래 추가를 수정했습니다.
<application android:largeHeap="true" android:label="sample"></application>
참고 URL : https://stackoverflow.com/questions/36835790/getting-outofmemoryexception-in-xamarin
'Nice programing' 카테고리의 다른 글
창을 닫을 때 JavaFX 응용 프로그램을 닫는 방법은 무엇입니까? (0) | 2020.11.03 |
---|---|
SQL Server에서 테이블 및 인덱스 저장소 크기 가져 오기 (0) | 2020.11.03 |
Xcode 8로 업데이트 한 후 오류 : "해당 모듈 없음"및 "대상이 ʻEMBEDDED_CONTENT_CONTAINS_SWIFT` 빌드 설정을 재정의합니다" (0) | 2020.11.03 |
만드는 방법 (0) | 2020.11.03 |
SQL 다중 결합 문 (0) | 2020.11.03 |