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
?
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.
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.
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.