it-swarm.com.de

Java Memory Limit -Xmx-Suffix: Groß-/Kleinschreibung m/M und g/G

Es ist allgemein bekannt, dass es möglich ist, die Java-Heap-Größe mit -Xmx<amount><unit> zu begrenzen, wobei unit die Datenmengeneinheit ist, wie Gigabyte, Megabyte usw. Ich weiß, dass -Xmx128M 128 Mebibytes bedeutet (= 128 * 1024 * 1024) Bytes).

Aber stimmt es, dass es auch möglich ist, Dezimaleinheiten wie Megabytes mit -Xmx100m Zu verwenden (was 100 * 1000 * 1000 Bytes wäre)?

Ist es also möglich, diese Dezimaleinheiten zu verwenden, indem Kleinbuchstaben wie k, m, g anstelle von K, M, G verwendet werden?

16

Es gibt keinen Unterschied zwischen k und K, und beide bedeuten kibibyte und m/M = mebibyte & g/G = gibibyte. Sie können 100m als Wert festlegen und es wird 100 * 1024 * 1024 bytes sein. Im Allgemeinen wird empfohlen, diesen Wert in powers of 2. zu verwenden.

Ich hoffe es hilft.

23
Sanjeev

Warum probierst du nicht einfach -Xmx100m und -Xmx100M und prüft, ob es Unterschiede gibt?.
k, m, g funktionieren genau wie K, M, G - sie bedeuten alle binäre Einheiten.

3
apangin

Alle von den JVM-Befehlszeilenargumenten verwendeten Speichergrößen werden unabhängig von der Groß-/Kleinschreibung in binären Einheiten (Kibibyte, Mebibyte usw.) angegeben. wo ein Kilobyte 1024 Bytes ist, und die anderen erhöhen die Potenz von 1024.

Diese Antwort geht in eine vollständigere technische Antwort auf die Frage ein.

1
TerekC