2017-03-20 11 views
1

Javaのマニュアル(およびWeb上の例)の-Xmxフラグのすべての例では、常に2の累乗です。たとえば、 '-Xmx512m'、 ' - Xmx1024m 'などJavaの-Xmxフラグの有効な値

これは必須条件ですか、何らかの理由で良いアイデアですか?

私は一般的にメモリが2の累乗であることを理解しています。この質問は、特にJavaメモリフラグに関するものです。

+0

バイナリについて学んだことはありますか?二人の力? '6g'は有効です..それは2の累乗ではありません –

+0

[なぜ2のべき乗でRAMですか?](http://stackoverflow.com/questions/22096327/why-is-ram-in- 2の累乗) –

+0

他の質問とは関係ありませんAFAICS。その質問は、Androidエミュレータとメモリ用のRAMに関するものですが、これは '-Xmx' Javaコマンドラインパラメータの値に関するものです。さらに、その質問に対する回答とこれに対する回答は、互いに衝突しません。 –

答えて

3

これは簡単なことですが、他の何よりもあなたの利益のためです。

2の累乗を選択する特別な理由はありません。また、50 MBの倍数(一般的なもの)も選択できます。 -Xmx400mまたは-Xmx750m

注:JVMはこれに厳密に従いません。これを使用して異なる領域のサイズを計算します。追加すると、指定した数よりも軽くなる傾向があります。私の経験では、ヒープは1%〜2%少なくなりますが、JVMが使用する他のすべてのメモリ領域を考慮すると、これは大きな違いはありません。

メモ:ハードウェアのメモリサイズは通常2の累乗です(一部のPCでは2の累乗で3倍でした)。これにより、メモリサイズを2の累乗として考えている人がいます。

BTW:AFAIK、ほとんどのJVMでは、各領域の実際のサイズはページサイズの4 KBの倍数です。

関連する問題