메모리 부족이 발생하기 전에 Java에서 수행 할 작업이 있습니까? 예를 들어 이전 문서 상태 목록을 유지 (실행 취소)하고 메모리가 거의 고갈 될 때까지 아주 오래된 상태 만 제거하면됩니까?메모리가 부족하기 직전에 수행하십시오.
5
A
답변
2
예를 들어 이전 문서 상태 목록을 유지 (실행 취소)하고 메모리가 거의 고갈 될 때까지 아주 오래된 상태 만 제거하면됩니까?
SoftReference
으로 무엇인가 할 수 있습니다. java.lang.ref 패키지에 대한 일반 문서를 참조하십시오. 객체가 SoftReference
을 통해서만 접근 할 수 있다면 메모리 부족 오류가 발생하기 전에 가비지 수집됩니다. 그러나 VM이 이러한 이벤트 전에 이러한 참조를 유지하거나 어떤 순서로 삭제 될지에 대한 보증을하지 않아도됩니다. 일부 유형의 지속성과 결합하는 것이 가장 좋습니다.
1
네, 물론 가능합니다.
이전 문서 상태에 대해 SoftReference의 목록을 사용했을 것입니다. 이들은 메모리 부족 예외가 발생하기 전에 처리되도록 보장됩니다.
정기적 인 간격으로 목록에서 null 참조를 제거 할 수 있습니다.
당신은 항상 적어도 하나 :-) 취소 보장 할 수 있도록 나는 또한 가장 최근의 상태로 정상 참조를 유지하는 것이 좋습니다그것은 JVM 구현에 따라 달라집니다,하지만 당신은 운이 좋은 경우 JVM 것이다 것 가장 최근의 주를 유지하고 가장 오래된 주를 처분하십시오. 이것은 JVM 스펙에서 꼭 필요한 것은 아니지만 권장되는 동작입니다.
관련 문제
- 1. Windows Lockout 직전에 작업 수행
- 2. 오브젝트가 파기되기 직전에 호출되는 메소드
- 3. Eclipse Debugger가 종료 직전에 중지합니다.
- 4. 생성 후 무언가를 수행하십시오.
- 5. JQuery에서 JavaScript .replace를 수행하십시오.
- 6. subselect를 사용하여 LEFT JOIN을 수행하십시오.
- 7. jQuery 숫자 형식 작업을 수행하십시오.
- 8. while 루프 테스트를 항상 수행하십시오.
- 9. 안드로이드 메모리가
- 10. 메모리가 무겁습니까?
- 11. 소켓을 닫기 직전에 데이터 패킷을 전송합니다.
- 12. 응답 리디렉션 직전에 javascript를 호출하는 방법
- 13. 응용 프로그램을 종료하기 직전에 객체를 해제하고 (따라서 dealloc해야하는 이유는 무엇입니까?
- 14. PostgreSQL을 수행하십시오 장고의 외부 조인과 사례
- 15. 이름에 *를 사용하여 ls 명령을 수행하십시오.
- 16. 모든 세션 로그 아웃을 강제로 수행하십시오.
- 17. 디렉토리가 변경된 경우 리눅스에서 어떤 작업을 수행하십시오.
- 18. Perl에서 SQL Server 2005에 연결하고 SELECT를 수행하십시오.
- 19. SketchFlow에서 UI를 먼저 수행하십시오. - UI보기가 걱정됩니까?
- 20. jQuery 요소에 무언가가 포함되어있는 경우, 내용을 수행하십시오.
- 21. 프로세스를 검색하고 특정 작업이있을 때 작업을 수행하십시오.
- 22. 복수 분기에서 git cherry-pick을 수행하십시오.
- 23. 특정 네트워크 어댑터에서 connect()를 수행하십시오.
- 24. 인터넷을 통해 단일 SQL 쿼리를 수행하십시오.
- 25. 웹 브라우저가 IE 인 경우 무언가를 수행하십시오.
- 26. Mod_Rewrite - 리퍼러가 감지되지 않으면 규칙을 수행하십시오.
- 27. 에 대한 기능을 호출하려면 다음을 수행하십시오.
- 28. 제어 메모리가 shelve에서 사용했습니다.
- 29. 메모리가 고정 (고정) 되었습니까?
- 30. Mathematica에 메모리가 부족합니다.
가능한 복제 http://stackoverflow.com/questions/2679330/catching-java-lang-outofmemoryerror, http://stackoverflow.com/questions/1692230/is-it-possible-to-catch-out- of-memory-exception-in-java 및 http://stackoverflow.com/questions/3058198/can-the-jvm-recover-from-an-outofmemoryerror-without-a-restart – BalusC
그들은 Oome 잡기에 관한 것입니다. 그것이 일어나는 것을 막는 것입니다. –