スワップスペースにプッシュアウトされないように特定のオブジェクトをOSにヒントするようにJVMに指示できますか?スワップスペースにオブジェクトをプッシュしないようにJavaに指示する
答えて
短い答えはいいえです。
Javaでは、スワップインとRAMに「固定」されているものを制御することはできません。
この種のことについて心配しているのは、通常、プロジェクトに何か間違っているという印です。 OSは、スワップされるべきものとそうでないものとを取り組むよりはるかに良い仕事をするでしょう。あなたの仕事は、基になるVM/OSがやろうとしていることを二度と推測しようとせず、あなたの機能と優れたデザインを提供することに専念することです。
Hey!あなたは管理された言語でプログラミングしています。なぜあなたはこれらについて考えているのですか?あなたがこれらのものをあなたの心から奪うことができないなら、いつでもCでプログラムすることができます。
短い答えは(上記のとおり):しないでください:-)。
しかし、原則として可能です。ほとんどのOSは、特定のメモリ領域がスワップされることを「ロック」することを許可している(例えば、Linuxではmlock(2)、WindowsではVirtualLock)。
VMは、この機能を適切なAPIを介してJavaアプリケーションに公開する可能性があります。しかし、私が知っているVMはありません。そのため、VMを変更する必要があります。
定期的にアクセスすると、その時点でどのページガベージコレクション中に物事を動かす)は、他の何かがもっと積極的にメモリを要求していない限り、ページアウトされません。しかし、別のページに移動しないようにJVMに指示する方法はなく、OSはページについてしか知りません。
この問題はEclipseでも非常に顕著で、KeepResidentのダーティハックプラグイン(http://suif.stanford.edu/pub/keepresident/)はそれを回避します。
開始するのが良いかもしれませんか?私は普及していないので、これは標準のEclipseディストリビューションに統合されているのでしょうか?
ない答えが、欠けているが、コメントを指して、私は、このオプションを予約:)
スワップに情報を格納しないようにする理由があります。ディスク上に永遠を費やすべきではないパスワードやその他の機密情報であること。また、週末の後に私のPCに戻ってきて、私はすぐに利用可能なメモリにいくつかのものをしたいと思います。
(Java以外)ネイティブに、各オペレーティングシステム/ほとんどのオペレーティングシステムでこれを行う方法があります。窓でこれは間違いなく可能です。しかし、まっすぐJavaの(JNIと思う)ではありません。 このオプションがどれほど欲しいかに応じて、ビデオメモリや、スワップアウトしない他のハードウェアデバイスを常に使用することができます。これにより、Joglのような標準的なJava APIを使用して情報を格納することができます。しかし、どういうわけか私はそれがあなたが探している実装/結果との文脈にあるのか疑問です。
基本的に、JVM全体をメインメモリに常時保存したいと考えています。
- 1. ポインターが何も指し示されないようにする
- 2. ギヤの順列をコンパイルしないようにGWTに指示するには
- 3. DjangoにHTTP POSTデータをバッファしないように指示するには?
- 4. Googleにキャッシュリンクを提供しないように指示するにはどうすればよいですか?
- 5. gnuplotに適切なログを画面に表示しないように指示するには?
- 6. Fluent NHibernateにクラスプロパティをマップしないように指示する方法
- 7. $ _変数を展開しないようにbashに指示する方法?
- 8. オブジェクトにメッセージを実行するように指示する方法
- 9. どのようにオブジェクトが常に最短距離を指し示すか/既に指し示す方向に移動しているか
- 10. Javaプロセスを開始するときにsoalrisのスワップスペースの問題
- 11. スクロールバーがコンテンツをプッシュしないようにします
- 12. とにかくdlopenにCと互換性のないバイナリをロードしないように指示する(Linux)
- 13. RadioButtonListにテーブルを生成させないように指示する方法
- 14. 宝石がRubyGemsにプッシュされないようにする
- 15. 指数によるようなオブジェクトをアクセスしてるが、C#の
- 16. Djangoテンプレートに、テンプレートタグのようなコードを含むブロックを解析しないように指示するにはどうすればよいですか?
- 17. 変更セットをデフォルト(Mercurial)にプッシュしないように制限する
- 18. RavenDBにプロパティを無視するように指示してください
- 19. HTML/jQueryオブジェクトをhightlightableにしないようにする
- 20. JSONをRailsコントローラでレンダリングするように指示します。
- 21. タッチイベントを無視するようSuperviewに指示しますか?
- 22. 特定のファイルを分析しないように指示できますか?
- 23. 特定のテキストエリアでスペルチェックを行わないようブラウザに指示します
- 24. 具体的な実装を持つ抽象クラスをスタブしないようにPexに指示する方法
- 25. facebookに2回ログインするようにユーザーに指示しないでください
- 26. java DirContext.search(...)。hasMore()に、PartialResultExceptionをスローする代わりにfalseを返すように指示する方法
- 27. intellisenseにいくつかのインクルードをスキャンしないように指示することはできますか?
- 28. 2つのモジュールから同じインスタンスをインポートしないようにHaskellに指示するには?
- 29. com.google.android.gms.location.LocationListenerを使用しているときにGPSを有効にするようにユーザーに指示する
- 30. Nav ControllerにプッシュしないでViewを表示するにはどうすればいいですか?
もう1つのオプションは、アプリケーションがすべてを一度にメモリに保持するように強制するものではないと思います。疑問は、実際のニーズよりも好奇心から来ています。 Cで行うことは可能ですか? –
いくつかのメモリページをメモリに張り付けることができます。これが、ほとんどのVM環境が行うことです。 –