web-dev-qa-db-fra.com

Limite de mémoire Java - suffixe Xmx: majuscules/minuscules m/M et g/G

Il est généralement connu qu'il est possible de limiter la taille du segment de mémoire Java avec -Xmx<amount><unit>, où unit est l'unité de quantité de données telle que Gigabyte, Mégaoctet, etc. Je sais que -Xmx128M correspond à 128 Mo (128 * 1024 * 1024 octets).

Mais est-il vrai qu'il est également possible d'utiliser des unités décimales telles que les mégaoctets en utilisant -Xmx100m (qui serait 100 * 1000 * 1000 octets)?

Donc, est-il possible d'utiliser ces unités décimales en utilisant des suffixes d'unités minuscules comme k, m, g au lieu de K, M, G?

16

Il n'y a pas de différence entre k et K, les deux moyens kibibyte et il en va de m/M = mebibyte & g/G = gibibyte. vous pouvez définir 100m comme valeur et ce sera 100 * 1024 * 1024 bytes. généralement, il est conseillé d'utiliser cette valeur dans powers of 2.

J'espère que ça aide.

23
Sanjeev

Pourquoi ne pas simplement essayer -Xmx100m et -Xmx100M et vérifier s’il ya une différence?.
k, m, g fonctionne exactement comme K, M, G - ils désignent tous des unités binaires.

3
apangin

Toutes les tailles de mémoire utilisées par les arguments de ligne de commande de la machine virtuelle Java sont spécifiées en unités binaires (kibibyte, mebibyte, etc.), quelle que soit la capitalisation de l'unité; où un «kilo-octet» est 1024 octets, et les autres sont des puissances croissantes de 1024.

Cette réponse entre dans une réponse technique plus complète à la question.

1
TerekC