2011-08-10 4 views
0

私はeclipseとintellijの両方でos xのJVMヒープサイズを調べ、コマンドラインから直接アプリケーションを実行しています。私は誰かが説明できると思っている奇妙な動作を見ています。私は日食のための大規模なもの(例えば1ギガバイトを超える)に、JVMのヒープサイズを設定し、java os x heap size質問

のSystem.out.println(Runtime.getRuntime()を実行し、ハロー世界のアプリケーションを実行する場合

  1. 。maxMemory ());

私は最大メモリとして129957888(128MB)を持っていることがわかります。

  1. 私はのIntelliJで同じ実験を実行した場合、私は同じ結果を得るが、下の隅にあるヒープサイズインジケータは、私はそれだけで私ができる2ギガバイトのうち、100メガバイトを使用していますと言います。

  2. 私がjava test -Xmx1024mbを実行した場合、正しい量の最大メモリがあることがわかります。 (限り8回)

は私が10.6と10.7でこれを試してみましたが、私は同じことを見ているので、私はIDEは、私と同じくらいのヒープサイズを消費していないと何が起こっているか思ったんだけど彼らに欲しい。私は空いている場所に座っている私のマシンにギガのラムを持っていて、これはばかげていると分かっています。

誰もが提供できるお手伝いをありがとう。

答えて

1

プログラムを実行するためにIDEが起動しているJVMではなく、IDEのJVMのヒープサイズを設定しているようです。 IDEが実行しているのと同じJVMでコードを実行すると危険です。

プログラムで実行されるデフォルトのヒープサイズは128 MBです。これを実行コンフィギュレーションまたはデバッグコンフィギュレーションで上書きすることができます。右あなたが

  • 選択として実行実行したいmainメソッドを持つJavaクラスをクリックし

    1. - > [ファイル名を指定して実行コンフィギュレーションを...
    2. クリックしてVMの引数セクションで引数タブ
    3. に、 -Xmx256m
    4. [実行]をクリックし

    上記の設定が256 MBにJVMによって使用される最大ヒープサイズを設定を入力してください。

    テストクラスの出力は265093120になります。