例子:-Xmx=512M -Xms=64M
Java堆可以通過Xmx和Xms兩個參數指定最大內存512M阻塑,最小內存64M。以下為兩個常見疑問:
- 既然都指定了 Xmx 為什么還要設置 Xms 呢果复?
Xms 是必不可少的配置陈莽,Xms 是 GC 算法進行垃圾收集評判標準中一個必不可少的元素。另外-Xms和-Xmx設置相同時可避免Java堆自動擴展虽抄。
- Xmx 指定的最大 Java 堆內存是在 Java 進程啟動的時候直接一次性分配還是隨著堆內存消耗不斷增加直到 Xmx走搁?
Xmx指定內存并不是真正的分配,而是一種保留极颓,內存保留 != 內存分配朱盐。當本機內存被保留時,無法使用物理內存或其他存儲器作為備用內存菠隆。盡管保留地址空間塊不會耗盡物理資源兵琳,但會阻止內存被用于其他用途。由保留從未使用的內存導致的泄漏與泄漏分配的內存一樣嚴重骇径。