我想了解JVM
內GC
與內存分頁之間的collaboration
。我有一個linux
框,其中有4GB RAM
並分配了1.2GB for JVM
。如果我運行需要大量內存的應用程序,我想知道何時發生內存分頁以及何時實際上出現內存不足錯誤throws
。當一個對象被創建時,它會在堆上創建,如果它沒有被使用,它將被垃圾收集,如果它被應用程序使用,它將被收集。垃圾回收+內存分頁
所以我的問題是什麼時候操作系統啓動內存分頁JVM
以及OS
分頁的活動對象會發生什麼?
而且,如果操作系統頁面生活的Java對象,它如何優先哪個對象應該首先被分頁?它是否會佔用佔用大部分內存的對象?
感謝您的回覆。我知道操作系統處理分頁,GC通過將對象從YG移動到OG來處理內存管理。我的問題是當內存分頁發生在OS端時,OS和JVM之間的分頁對象是如何處理的? – user826323
對於操作系統,JVM進程就像沒有特殊訪問的任何其他進程。因此,當JVM想要訪問當前在虛擬內存中的對象時,基於需求,操作系統將其從虛擬內存中傳回並使其可用。同時,操作系統可能會將一些對象內容轉移到虛擬內存。如果你想知道什麼時候會發生,那麼當JVM請求OS獲取對象位於某個地址時會發生這種情況,這取決於哪個操作系統獲取了內容並將其他頁面放在其他地方 – Jatin