問題タブ [setrlimit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
101 参照

java - main() 内でシステム リソース制限が設定されていると、Java JNA アプリケーションがクラッシュする

大きな 1D 配列 (~1G) の要素の合計を計算する必要がある JNA アプリケーションがあります。JNA Resource.Rlimit クラスを使用すると、次のスニペットに示すようにリソース制限を増やすことができます。

ただし、これは、大きな配列を割り当てるメソッド内でスタック サイズが設定されている場合にのみ機能します。したがって、以下のコードを実行すると、メモリ不足の例外はありません。

しかし、リソース制限が main() 内で設定され、メソッド Test1() が呼び出されると、プログラムがクラッシュします。

Test1() を呼び出す前に main() のスタック サイズを増やすことができないのはなぜですか。このプロジェクトは、8GB RAM を搭載した Ubuntu 16.04 amdx86-64 上の IntelliJ Idea (コミュニティ バージョン 2019.3) で作成されました。

0 投票する
0 に答える
42 参照

linux - setrlimit を使用して、mmap が 64 GB の範囲内で VA を返すように強制できますか?

私は ARM64 サーバーで作業しており、古いプログラムを機能させようとしています。ソースコードは必要ありません。バイナリだけです。

バイナリは、48 ビット仮想アドレス (VA) をサポートしない LuaJit を使用します。ただし、私のカーネルは 48 ビット VA を使用しています。

LuaJit は mmap を使用してメモリを割り当てます。

mmap が常に 47 ビット以下の VA を返すようにしたい。setrlimit がプロセスの仮想アドレス範囲を制限できることに気付きました。クォータに関するものですか、それとも VA スペースの制限を強制するものですか?

VA 範囲を制限する場合は、動的ライブラリをプリロードして setrlimit を呼び出して mmap を呼び出すことができると思います。