Mac OS X で Java の最大メモリ サイズの「ヒープ」を変更しようとしています。設定。
5 に答える
次のパラメータを使用して、Java VM で使用可能なメモリを設定できます。
-Xms64m -Xmx200m
-Xms は最小メモリを指定します。-Xmx 最大のもの。
アプリを実行するときにそれらを指定する必要があります。たとえば、app.jar という名前の jar がある場合は、次のように入力して実行できます。
java -Xms64m -Xmx512m -jar app.jar
32 ビット マシンでは、JVM に 1Gb を超える容量を与えることはできないと思います。
私はWEKAを使用していましたが、同じ問題が発生しました。ここで、解決策を見つけました。簡単でした。
アプリケーションに移動==>特定のアプリケーション(Wekaなど)を左クリック==>パッケージコンテンツを表示==>コンテンツ==>Info.Plist==>Java==> VMOptions==>必要に応じてメモリのサイズを増やします(私のMacではデフォルトは1 Gbでしたが、6 Gbに増やしました)
ターミナルで非常に大きな配列を持つ Java プログラムを実行しようとしていました。メモリが不足し続けましたが、スレッドごとに許可されるメモリを増やすことで問題を修正しました。
$ java -Xss12G name
ここで、-Xss12G
は Java ランタイムに、スレッドごとに 12Gb を割り当ててから実行するように指示しますname
。同様に-Xss4G
、スレッドごとに 4Gb を使用します。これ$
はTerminal
コンソール プロンプトで、おそらくフォルダと名前が表示されます。
注: スレッドを使用していない場合は、現在のプログラムまたは実行中のメイン スレッドに使用するメモリを割り当てます。
ターミナルでコマンドを記述するjava -X
と、ヒープとスレッド メモリの割り当てに関する詳細が表示されます。
$ java -X
スイッチを使用して最大ヒープ サイズを設定し-Xmx
ます。
-XX:MaxPermSize は、全ヒープのサブセットであるパーマ生成の最大サイズを指定するために使用されます
ターミナルからアプリケーションを起動する場合は、コマンド ラインで引数を指定します。
java -XX:MaxPermSize=128m ...
これは他のプラットフォームと同じです。
これをアプリケーション バンドル (つまり、通常のダブルクリック可能な Mac アプリのような Java アプリ) に設定する必要がある場合は、info.plist ファイルを編集する必要があります。このファイルはバンドル内にあり、通常は見える。
このページには、IntelliJ でこれを行う方法が記載されていますが、バンドルされている他の Mac Java アプリにも適用できます。