首先先看一下jvm的大致情況,包括:堆內存使用情況,加載的類的情況,線程個數等等信息。如下圖所示:
接著看一下通過jconsole看到的jvm的內存使用情況。jvm主要管理兩種類型的內存:堆和非堆。簡單來說堆就是Java代碼可及的內存,是留給開發人員使用的;非堆就是JVM留給自己用的,所有方法區、JVM內部處理或優化所需的內存(如JIT編譯后的代碼緩存)、每個類結構(如運行時常數池、字段和方法數據)以及方法和構造方法的代碼都在非堆內存中。在jconsole中,我們看到下方綠色的柱狀圖表示的各個部分的內存情況。在jconsole中jvm的堆內存分為:eden space 內存池,survivor space 內存池,tenured gen內存池,非堆內存分為:code cache內存池,perm gen內存池。如下圖所示:
最后看使用jconsole查看一下jvm的參數設置,如下圖:
上面的jvm的參數說明如下:
-Xms 最小堆空間
-Xmx 最大堆空間
-Xmn 新生代空間
-Xss 線程棧空間
-XX:PermSize=xxx 永久代空間
-XX:MaxPermSize=xxx 最大永久代空間