Я проводил сравнение между Amazon Correto и Oracle JRE (Windows 32-bit) и заметил, что они выделяют максимальное количество памяти по-разному.
Итак, я сделал этот пример кода и запустил его на разных JRE.Результаты:
32-битный Amazon Corretto - jre1.8.0_202
- Без -Xmx
- Runtime.getRuntime (). MaxMemory (): 652476416
- С -Xmx1024m
- Runtime.getRuntime (). MaxMemory (): 954466304
- С -Xms1024m
- Runtime.getRuntime (). MaxMemory (): 1029177344
Amazon Corretto 64 бита - jre1.8.0_202
- без -Xmx
- Runtime.getRuntime (). MaxMemory (): 947388416
- с -Xmx1024m
- Runtime.getRuntime (). MaxMemory (): 954728448
- С -Xms1024m
- Runtime.getRuntime (). MaxMemory (): 1029177344
Oracle 32 бита - jre1.8.0_202
- Без -Xmx
- Runtime.getRuntime (). MaxMemory(): 259522560
- С -Xmx1024m
- Runtime.getRuntime (). MaxMemory (): 1037959168
- С -Xms1024m
- Runtime.getRuntime (). MaxMemory (): 1037959168
Oracle 64 бита - jre1.8.0_202
- Без -Xmx
- Runtime.getRuntime (). MaxMemory (): 947388416
- С -Xmx1024m
- Runtime.getRuntime (). MaxMemory (): 954728448
- С -Xms1024m
- Runtime.getRuntime() .maxMemory (): 1029177344
Вот код:
public class Main {
/**
* @param args
*/
public static void main( String[] args ) {
System.out.println( "Runtime.getRuntime().maxMemory(): " + Runtime.getRuntime().maxMemory() ); // JOSE_RENATO Remover
}
}
Итак, почему Oracle JRE 32 битавыделяет больше памяти при использовании параметра -Xmx?
И почему это поведение отличается в 64-битной версии?