문제

JVM에 특정 객체가 공간을 교환하기 위해 밀어 내지 않아야한다고 OS를 힌트 할 수 있습니까?

도움이 되었습니까?

해결책

짧은 대답은 아니오입니다.

Java는 교체 된 내용과 RAM에 '고정 된'내용을 제어 할 수 없습니다.

이런 종류의 일에 대해 걱정하는 것은 일반적으로 프로젝트에 다른 문제가 있다는 신호입니다. OS는 전체적으로 교체해야 할 사항과하지 말아야 할 사항을 해결하는 데 훨씬 더 나은 일을 할 것입니다. 귀하의 임무는 소프트웨어를 작성하여 기본 VM/OS가 무엇을할지 추측하지 않도록하는 것입니다. 기능과 좋은 디자인을 제공하는 데 집중하십시오.

다른 팁

이 문제는 Eclipse 및 KeepResident Dirty Hack Plugin에서도 눈에 띄었습니다.http://suif.stanford.edu/pub/keepresident/) 피합니다.

시작하기에 좋은 곳일까요? 나는 그것을 광범위하게 사용하지 않았으므로 아마도 이것은 표준 이클립스 분포에 통합되었을 것입니까?

여기요! 당신은 관리되는 언어로 프로그래밍하고 있습니다. 왜 이것에 대해 생각하고 있습니까? 이 물건을 마음에서 얻을 수 없다면 언제든지 C로 프로그램을 선택할 수 있습니다.

짧은 대답은 (위에 주어진대로) :하지 마십시오 :-).

그러나 원칙적으로 가능할 것입니다. 대부분의 OS는 특정 메모리 영역을 교환하는 것을 "잠금"할 수 있습니다 (예 : mlock (2) Linux에서 Windows 아래에서 Virtuallock).

VM은 적절한 API를 통해이 기능을 Java 응용 프로그램에 노출시킬 수 있습니다. 그러나 내가 아는 VM은 그 일을하지 않으므로 먼저 VM을 수정해야 할 것입니다 ...

정기적으로 액세스하는 경우, 당시에있는 페이지 (JVM이 쓰레기 수집 중에 JVM을 이동)는 다른 것이 더 공격적으로 메모리를 요청하지 않는 한 페이징되지 않습니다. 그러나 JVM에 다른 페이지로 이동하지 말라고 지시하는 방법은 없으며 OS는 페이지에 대해서만 알고 있습니다.

답이 아니라 댓글을달라고 포인트가 부족한이 옵션을 예약합니다. :)

스왑에 정보를 저장하지 않는 이유가 있습니다. 디스크에 영원을 소비해서는 안되는 비밀번호 또는 기타 기밀 정보입니다. 또한 주말에 내 PC로 돌아와서 즉시 메모리를 할 수있는 것들을 원합니다.

(비 Java) 기본적으로 아마도 각/대부분의 운영 체제에 대해이 작업을 수행 할 수있는 방법이있을 수 있습니다. 창문에서는 이것이 확실히 가능합니다. 그러나 Java에서 똑바로 나오지 않습니다 (Jni 생각). 이 옵션이 얼마나 절망적인지에 따라 항상 비디오 메모리 또는 교체하지 않는 다른 하드웨어 장치를 사용하는 것을 볼 수 있습니다. 이를 통해 Jogl과 같은 표준적인 Java API를 사용하여 정보를 저장할 수 있습니다. 그러나 어쨌든 나는 그것이 당신이 찾고있는 구현/결과와 관련이 있다고 의심합니다.

기본적으로 전체 JVM을 메인 메모리에서 항상 유지하려고합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top