- PR -

メモリのサイズを指定

1
投稿者投稿内容
未記入
会議室デビュー日: 2006/01/13
投稿数: 12
投稿日時: 2008-03-03 16:07
実行するためのメモリのサイズを指定することは出来ますか?
例えば128MBを指定して、使い切った場合のみ仮想メモリを使用するように設定するのです。ただし100MBを使用した時点でGCを実行するように設定する。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2008-03-03 16:29
http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/java.html
ヒープの最小値と最大値は-Xms、-XmxのVMオプションで指定できます。
100MBを使った時点でGCを行わせるというような指定は出来ません。

例えば、-Xms128m -Xmx256mと指定した場合は、初期ヒープ容量が128MB、
その後はフルGCしてもヒープが不足するような場合に最大256MBまで
ヒープが自動的に拡張されるようになります。

「仮想メモリの使用」がスワップファイル(ページ・ファイル)上に
領域を確保するという意味ならば、そもそも物理ページが不足する
場合にOSが自動的に使うものなので、そういった指定はできません。
未記入
会議室デビュー日: 2006/01/13
投稿数: 12
投稿日時: 2008-03-03 17:44
最小値の指定の意味が分かりません。最小128M指定しても64Mしか使わない場合はムダになるだけでは?
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2008-03-03 17:52
引用:

未記入さんの書き込み (2008-03-03 17:44) より:
最小値の指定の意味が分かりません。


明示するかどうかはともかくとして、
コンピューターが動作するためには、初期値というものが必要です。
引用:

最小128M指定しても64Mしか使わない場合はムダになるだけでは?


その通りです。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2008-03-03 18:04
大きめの最小値の指定は必ずしも無駄とは限りません。

Javaではいつかは必ずGCの実行が必要になるので、
空きが多ければGCの頻度を減らせる可能性があります。

それに、ヒープは最大値までは自動的に拡張されますが、
拡張前にはGCが頻発するのでパフォーマンス的に不利です。
どのみち拡張されるのであれば、標準的なヒープ使用量を
見積もるなり実測するなりして指定した方がよいです。
1

スキルアップ/キャリアアップ(JOB@IT)