JVM學習之GC日誌
-XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:d:/gc_log/gc.log
package com.tets; public class ReferenceCountingGC { public Object instance = null; private static final int _1MB = 1024*1024; private byte[] bigSize = new byte[2 * _1MB]; public static void testGC(){ ReferenceCountingGC obja =new ReferenceCountingGC(); ReferenceCountingGC objb = new ReferenceCountingGC(); obja.instance =objb; objb.instance =obja; obja = null; objb = null; System.gc(); System.out.println("--------------"); } public static void main(String[] args) { testGC(); } }
2017-08-30T22:03:53.744+0800: 1.202: [GC 1.210: [DefNew: 2505K->170K(4928K), 0.0270798 secs] 2505K->2219K(15872K), 0.0353489 secs] [Times: user=0.00 sys=0.00, real=0.04 secs] 2017-08-30T22:03:53.779+0800: 1.238: [Full GC (System) 1.238: [Tenured: 2048K->170K(10944K), 0.0548002 secs] 4267K->170K(15872K), [Perm : 2335K->2335K(12288K)], 0.0554659 secs] [Times: user=0.01 sys=0.00, real=0.06 secs] Heap def new generation total 4992K, used 96K [0x04510000, 0x04a70000, 0x09a60000) eden space 4480K, 2% used [0x04510000, 0x04528028, 0x04970000) from space 512K, 0% used [0x04970000, 0x04970000, 0x049f0000) to space 512K, 0% used [0x049f0000, 0x049f0000, 0x04a70000) tenured generation total 10944K, used 170K [0x09a60000, 0x0a510000, 0x14510000) the space 10944K, 1% used [0x09a60000, 0x09a8abd0, 0x09a8ac00, 0x0a510000) compacting perm gen total 12288K, used 2347K [0x14510000, 0x15110000, 0x18510000) the space 12288K, 19% used [0x14510000, 0x1475af30, 0x1475b000, 0x15110000) No shared spaces configured.
相關推薦
JVM學習之GC日誌
-XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:d:/gc_log/gc.log package com.tets; public class R
jvm系列之-gc日誌檢視
在上一篇中我們介紹的有引數的設定,那我們要了解不同的引數對於程式的影響和對於調優的影響,這個時候我們就需要檢視gc日誌來看我們設定的引數是否合理,這一章節中我們就來檢視gc日誌 一、新生代和老年代的比值對效能的影響 Map map = new HashMap<&
JVM系列第14講:JVM引數之GC日誌配置
說到 Java 虛擬機器,不得不提的就是 Java 虛擬機器的 GC(Garbage Collection)日誌。而對於 GC 日誌,我們不僅要學會看懂,而且要學會如何設定對應的 GC 日誌引數。今天就讓我們來學習一下 Java 虛擬機器中所有與 GC 日誌有關的引數。相信掌握了這些引數之後,對於大家線上列印
JVM學習之GC流程和GC策略
GC流程 對於GC流程裡面需要處理的是年輕代和老年代的記憶體空間,而元空間(永久代)都不在GC範疇。 1、現在有一個新物件產生,那麼物件一定需要記憶體空間,於是現在需要為該物件進行記憶體空間的申請。 2、首先會判斷伊甸園區是否有記憶體空間,如果
JVM學習之1 GC日誌理解
為了觀察GC日誌,我們需要設定JVM啟動引數: -XX:+PrintGCDetails-----------------------------表示詳細的GC日誌的輸出 下面程式程式碼是我摘抄《深入理解JVM》這個本書
JVM學習之1 GC日誌理解
為了觀察GC日誌,我們需要設定JVM啟動引數: -XX:+PrintGCDetails-----------------------------表示詳細的GC日誌的輸出 下面程式程式碼是我摘抄《深入理解JVM》這個本書上的一個示例; public c
jvm之gc日誌
日誌 details you 通過 detail fullgc parallel 分享 技術 ava GC日誌可以通過 +PrintGCDetails開啟 以ParallelGC為例 YoungGC日誌解釋如下 FullGC: jvm之gc日誌
Linux學習之路--日誌管理【17】---20180113
ocs title 軟件 config mil 集中 auto 表示 rap 一、日誌介紹日誌: 歷史事件:時間,地點,人物,事件 日誌級別:事件的關鍵性程度,Loglevel系統日誌服務:sysklogd :CentOS 5之前版本 syslog
JVM學習-之對象的創建和內存分配
point IV www 方法區 包括 軌跡 from con 指定 最近看JVM內存模型,看了很多文章,大都講到JVM將內存區域劃分分:Mehtod-Area(No heap) 方法區,Heap(堆)區,Program Counter Register(程序計數
JVM學習之java記憶體模型
JVM學習之java記憶體模型 以下blog內容來自《深入理解Java虛擬機器_JVM高階特性與最佳實踐》感謝作者!! java虛擬機器規範定義了一種java記憶體模型(JMM)來遮蔽不同硬體和作業系統的差異,達到跨平臺執行效果,記憶體模型的定義一個宗旨就是併發記憶體訪問操作不會產生
JVM學習之java執行緒實現&排程和狀態轉換
以下blog內容來自《深入理解Java虛擬機器_JVM高階特性與最佳實踐》感謝作者! 1 謹慎使用java 多執行緒 如何提升效率: 使用java時推薦利用多執行緒處理一些操作絕大多數情況下確實能提高效率,提高效率的原理
JVM學習之垃圾收集演算法
以下blog內容來自《深入理解Java虛擬機器_JVM高階特性與最佳實踐》,感謝作者! 昨天下班後地鐵上和以前的同學交談,才知道永遠不嘗試新東西永遠不會有新思路,希望寫完基礎系列之後自己能有所進步,然後分析更多有用的東西。 1垃圾收集演算法分類  
jvm學習之java記憶體區域
java虛擬機器在執行java程式的過程中會把它所管理的記憶體劃分為若干不同區域:有些是依賴使用者執行緒的啟動和結束而建立和銷燬的,有的則是隨著虛擬機器程序的啟動而存在。 執行緒共享區域:方法區 、堆。 執行緒隔離(各個執行緒獨有區域)虛擬機器棧、本地方法棧、程式計數器。
JVM學習之物件記憶體佈局,物件頭
本篇內容來自《深入理解Java虛擬機器_JVM高階特性與最佳實踐》,感謝作者。 建立物件之後需要使用物件,java中除了對物件屬性方法的呼叫以外還有加鎖實現同步等其他操作,這裡的鎖加在了哪裡,如何記錄鎖,如何對鎖進行分類(有物件鎖,class鎖),垃圾回收機制中有關於GC的
JVM學習之java執行緒實現&排程和狀態轉換
1 謹慎使用java 多執行緒 如何提升效率: 使用java時推薦利用多執行緒處理一些操作絕大多數情況下確實能提高效率,提高效率的原理在哪裡呢,為什麼說絕大多說情況呢。 在CPU單核時代,我們知道某一時刻工作的執行緒只能是一條,那多執行緒為什
JVM學習之:淺談方法呼叫以及Override/Overload的原理
提到方法呼叫,我想大多數人的第一反應就是執行一個方法唄,其實在虛擬機器的眼裡方法呼叫只是確定他要呼叫哪個方法而已,和方法的執行還是有比較大的區別的.任何一個層序的執行都離不開方法的呼叫以及方法的執行,但是在JVM學習之:虛擬機器中的執行時棧幀總結(二)提到過,在Class檔
JVM學習之Java類載入
Java類載入 我們知道,java原始碼(*.java)不能直接執行,我們需要通過java編譯器javac.exe將原始碼編譯為java字解碼檔案(*.class),然後再通過java.exe在JVM中解釋此程式。 一、Java程式執行流程 二、類載入
JVM實用引數 GC日誌
GC日誌是一個很重要的工具,它準確記錄了每一次的GC的執行時間和執行結果,通過分析GC日誌可以優化堆設定和GC設定,或者改進應用程式的物件分配模式。 -XX:+PrintGC 引數-XX:+PrintGC(或者-verbose:gc)開啟了簡單GC日誌模式,為每一次
JVM學習之物件的管理
概述: 本文主要講述了JAVA中物件建立、訪問、及其記憶體佈局。 物件的建立: 1.記憶體分配: 物件建立首先要申請記憶體,在JVM中有兩種記憶體管理的辦法:指標碰撞與空閒列表。如果JVM的垃圾回收機制中,能夠自動的整理物件,將物件緊密聯絡的排列在記
JVM實用引數GC日誌
GC日誌是一個很重要的工具,它準確記錄了每一次的GC的執行時間和執行結果,通過分析GC日誌可以優化堆設定和GC設定,或者改進應用程式的物件分配模式。 -XX:+PrintGC 引數-XX:+PrintGC(或者-verbose:gc)開啟了簡單GC日誌模式,為每一次新生