web-dev-qa-db-ja.com

Javaメモリ制限-Xmxサフィックス:大文字と小文字のm / Mおよびg / G

Javaヒープサイズを-Xmx<amount><unit>で制限できることが一般的に知られています。ここで、unitはギガバイト、メガバイトなどのデータ量単位です。I -Xmx128Mは128メビバイト(= 128 * 1024 * 1024バイト)を意味することに注意してください。

しかし、-Xmx100mを使用してメガバイトなどの小数単位を使用することも可能であることは本当ですか(100 * 1000 * 1000バイトになります)?

それで、k, m, gの代わりにK, M, Gのような小文字の単位接尾辞を使用して、この10進単位を使用することは可能ですか?

22

KとKの間に違いはありません。どちらもkibibyteを意味し、m/M = mebibyte&g/G = gibibyteも同様です。 100mを値として設定すると、100 * 1024 * 1024 bytesになります。通常、powers of 2.でこの値を使用することをお勧めします

それが役に立てば幸い。

30
Sanjeev

-Xmx100m-Xmx100Mを試して、違いがないか確認してみませんか。
k, m, gK, M, Gとまったく同じように機能します。これらはすべてバイナリ単位を意味します。

3
apangin

JVMコマンドライン引数で使用されるすべてのメモリサイズは、単位の大文字に関係なく、バイナリ単位(キビバイト、メビバイトなど)で指定されます。ここで、「キロバイト」は1024バイトで、その他は1024の累乗です。

この回答 は、質問に対するより完全な技術的回答になります。

1
TerekC