Javaで利用可能なメモリサイズのデフォルト値は？


Javaでは-Xms256mのように利用可能なメモリを指定できますが、指定しない場合のデフォルトサイズ はどのようになりますでしょうか？




Java SE 8のドキュメントを直訳すると以下のようです。

-Xms

  * Java SE 5.0以前：プラットフォームごとの適切なサイズ
  * Java SE 5.0 ～ Java7：物理メモリの1/64より大きい適切なサイズ
  * Java8以降：Old世代とYoung世代に割り当てられたサイズの合計

-Xmx

  * Java SE 5.0以前：64MB
  * Java SE 5.0 ～ Java7：物理メモリの1/4より小さい適切なサイズだが、最大でも1GBまで
  * Java8以降：言及はありませんが、Metaspace領域の特性から考えると可能な限り

Java8ではヒープメモリのPermanent領域が消えて、  
代わりにネイティブメモリにMetaspace領域が追加されました。  
これに合わせてメモリ関連のオプション・ツールが変更されています。

○公式ドキュメント（一部情報が古いので、解説記事と合わせてご確認ください。）  
<https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gc-ergonomics.html>  
<https://docs.oracle.com/javase/jp/8/technotes/guides/vm/gc-ergonomics.html>  
<http://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html>  
<http://docs.oracle.com/javase/jp/8/technotes/tools/windows/java.html>

○解説記事  
<http://equj65.net/tech/java8hotspot/>  
<http://www.slideshare.net/YaSuenag/metaspace>




Java SE 8のドキュメントを直訳すると以下のようです。

-Xms

  * Java SE 5.0以前：プラットフォームごとの適切なサイズ
  * Java SE 5.0 ～ Java7：物理メモリの1/64より大きい適切なサイズ
  * Java8以降：Old世代とYoung世代に割り当てられたサイズの合計

-Xmx

  * Java SE 5.0以前：64MB
  * Java SE 5.0 ～ Java7：物理メモリの1/4より小さい適切なサイズだが、最大でも1GBまで
  * Java8以降：言及はありませんが、Metaspace領域の特性から考えると可能な限り

Java8ではヒープメモリのPermanent領域が消えて、  
代わりにネイティブメモリにMetaspace領域が追加されました。  
これに合わせてメモリ関連のオプション・ツールが変更されています。

○公式ドキュメント（一部情報が古いので、解説記事と合わせてご確認ください。）  
<https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gc-ergonomics.html>  
<https://docs.oracle.com/javase/jp/8/technotes/guides/vm/gc-ergonomics.html>  
<http://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html>  
<http://docs.oracle.com/javase/jp/8/technotes/tools/windows/java.html>

○解説記事  
<http://equj65.net/tech/java8hotspot/>  
<http://www.slideshare.net/YaSuenag/metaspace>

