簡體   English   中英

Java如何保留/使用內存?

[英]How does Java reserve/use memory?

這可能是一個noob問題,但我需要運行一個處理大型數據集的java應用程序。 所以我去了-Xmx14G,知道我的機器有16G的物理內存。

不久之后,繁榮,我的操作系統通知我,我的啟動盤幾乎已滿。 我檢查了我的進程,沒有OOM異常,只是它停滯了。 檢查我的活動監視器,並未說應用程序以完全內存容量運行。

JVM如何保留/使用內存?

通常,JVM會在堆已滿之前分配新內存,在這種情況下,它會收集垃圾,釋放未引用的對象。 如果你為堆分配了14GB,那么它可能會消耗那么多內存。

還有另一個JVM參數-Xms<size> it'初始堆大小。 如果我們沒有明確設置它,JVM將根據PC配置自動選擇一個。 這個值永遠不會那么大,通常是64M。 以后JVM可以分配更多內存到最大值。 但它只在應用程序真正使用它時才會發生。 如果實際內存使用量減少,JVM會將內存縮小到更小的大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM