我知道JVM是一個守財奴,但是這是一個衝擊對我說:在啓動時使用的180MB與 netbean的非常基本的「聯繫人編輯器」界面上再加一些基本的通用的實例?簡單的Swing程序即使在空閒時也能使用〜200MB?
我沒有建立一個1998年大約第一人稱射擊遊戲。我懇求SO社區在這一點上給我啓迪。這裏是一個JConsole的打印屏幕:
另外:我已經啓動18個線程,永遠不會死。除了始終存在的初始線程和Swing的調度線程之外是否還有其他線程?
我知道JVM是一個守財奴,但是這是一個衝擊對我說:在啓動時使用的180MB與 netbean的非常基本的「聯繫人編輯器」界面上再加一些基本的通用的實例?簡單的Swing程序即使在空閒時也能使用〜200MB?
我沒有建立一個1998年大約第一人稱射擊遊戲。我懇求SO社區在這一點上給我啓迪。這裏是一個JConsole的打印屏幕:
另外:我已經啓動18個線程,永遠不會死。除了始終存在的初始線程和Swing的調度線程之外是否還有其他線程?
線程是不是一個真正的內存問題(大約一半的18只是因爲你是在調試模式下IIRC)。其他的有很明顯的名字(我的猜測):AWT-Shutdown(檢查所有的窗口是否處置,然後退出JVM),AWT-Windows(從操作系統獲取事件),Java2D垃圾處理器(圖像數據清理)。
我不知道你正在運行的程序,但如果它是基於Netbeans 平臺,可能會增加一些額外的內存需求,但不是180MB。我想大部分內存不是被使用(只是保留),或者是實際的數據佔用內存。
對於比較:?
擊穿:
大約有一半的樣子高速緩存圖像(大背景圖像:))我離開了INT [] /對象[]/HashMap中。條目[]是指相同的數據)
如果你想看到你的示例應用程序的細分 - > VisualVM - >監視器 - >堆轉儲 - >按保留大小查找x最大的對象。