Frage

Ist es möglich, die JVM sagen das Betriebssystem anzudeuten, dass ein bestimmtes Objekt sollte vorzugsweise nicht Platz tauschen sich herausgeschoben?

War es hilfreich?

Lösung

Die kurze Antwort ist nein.

Java erlaubt Ihnen nicht jede Kontrolle darüber, was in getauscht wird und was gemerkt "in den RAM wird.

Die Sorge um diese Art der Sache ist in der Regel ein Zeichen dafür, dass es etwas anderes falsch in Ihrem Projekt ist. Das Betriebssystem wird im Großen und Ganzen macht einen viel besseren Job zu arbeiten, was ausgelagert werden soll und was nicht. Ihre Aufgabe ist es, Ihre Software zu schreiben, so dass es nicht Sekunde nicht versuchen zu erraten, was zugrunde liegenden VM / OS tun wird, konzentrieren sich nur Ihre Funktionen auf die Bereitstellung und ein gutes Design.

Andere Tipps

Dieses Problem ist auch sehr auffällig gewesen in Eclipse und der KeepResident schmutzigen Hack-Plugin ( http: // suif.stanford.edu/pub/keepresident/ ) vermeidet es.

Es könnte ein guter Anfang sein? Ich habe es nicht weit verbreitet gesehen so vielleicht hat dies in der Standard-Eclipse-Distribution integriert?

Hey! Sie programmieren in einer verwalteten Sprache. Warum denken Sie über diese? Wenn Sie nicht diese Dinge aus dem Kopf bekommen, können Sie jederzeit in C programmiert werden.

Die kurze Antwort ist (wie oben angegeben): Nicht‘es tun: -).

Es wäre jedoch möglich sein, im Prinzip. Die meisten OS erlauben bestimmte Speicherbereiche zu „sperren“ aus getauscht werden (zB mlock (2) unter Linux, VirtualLock unter Windows).

Die VM diese Funktionalität zu Java-Anwendungen über eine geeignete API aussetzen könnten. Allerdings wissen nicht VM ich das tut, so zu tun, würden Sie zuerst Ihre VM ändern müssen ...

Wenn Sie es regelmäßig zugreifen, dass das, was Seite es in zu der Zeit passiert sein (die JVM Sachen bewegt sich während der Garbage-Collection um) nicht ausgelagert werden, es sei denn etwas anderer Speicher anfordert sogar aggressiv mehr. Aber es gibt keinen Weg, um die JVM zu sagen, es nicht auf eine andere Seite zu verschieben, und das Betriebssystem kennt nur Seiten.

keine Antwort, aber ohne Punkte zu kommentieren, behalte ich diese Option:)

Es gibt Gründe, keine Informationen in Swap zu speichern. Ob Kennwörter oder andere vertrauliche Informationen, die nicht ewig auf der Festplatte verbringen sollte. Auch nach einem Wochenende auf meinen PC wieder kommen, würde ich einige Dinge wie im Speicher sofort zur Verfügung.

(Non Java) Nativ gibt es wahrscheinlich eine Möglichkeit, diese Systeme für jede / die meisten Betriebe zu tun. Mit Fenstern ist dies auf jeden Fall möglich. Aber nicht direkt aus Java (man denke JNI). Je nachdem, wie verzweifelt diese Option ist, können Sie immer sehen Videospeicher verwendet wird, oder ein anderes Hardware-Gerät, das nicht aus tauschen. Auf diese Weise können Sie immer noch einen standardish Java-API verwenden, wie jogl Informationen zu speichern. Aber irgendwie bezweifle ich, dass in Zusammenhang mit der Durchführung / Ergebnisse, die Sie suchen.

Im Grunde wollen Sie die ganze Zeit über die ganze JVM im Hauptspeicher zu halten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top