java gc log調優_Java 開啟 gc 日志

構建一個 jar 包程序

使用 Spring Boot 構建一個簡單的 web 程序,可以直接使用 java -jar 來啟動。

@RestController

@RequestMapping("/root")

@SpringBootApplication

public class SbDemoApplication {

public static void main(String[] args) {

SpringApplication.run(SbDemoApplication.class, args);

}

@RequestMapping("/hello")

public String hello() {

return "Hello";

}

}

啟動

使用 -verbose:gc 或 -XX:+PrintGC 這兩個參數可以創建基本的 GC 日志,使用 -XX:+PrintGCDetails 可以創建更加詳細的日志。

$ java -jar -XX:+PrintGCDetails sb-demo.jar

[0.002s][warning][gc] -XX:+PrintGCDetails is deprecated. Will use -Xlog:gc* instead.

[0.009s][info ][gc,heap] Heap region size: 1M

[0.013s][info ][gc ] Using G1

[0.013s][info ][gc,heap,coops] Heap address: 0x0000000740000000, size: 2048 MB, Compressed Oops mode: Zero based, Oop shift amount: 3

啟動 sb-demo.jar 發現提示 -XX:+PrintGCDetails 已經不推薦使用了,要使用 -Xlog:gc*。那我只好去 Oracle 的網站查詢 -Xlog 如何使用,我使用的是 JDK 10 ,那就查詢這個版本的 Tools and Commands Reference .

$ java -jar -Xlog:gc sb-demo.jar

[0.010s][info][gc] Using G1

[0.492s][info][gc] GC(0) Pause Young (G1 Evacuation Pause) 14M->2M(128M) 5.058ms

使用上面的命令就能開啟 gc 日志了,默認是info級別的,可以使用下面的方式修改gc日志的級別

$ java -jar -Xlog:gc=debug sb-demo.jar

[0.007s][debug][gc] ConcGCThreads: 1

[0.007s][debug][gc] ParallelGCThreads: 4

[0.008s][debug][gc] Initialize mark stack with 4096 chunks, maximum 16384

[0.010s][info ][gc] Using G1

[0.499s][info ][gc] GC(0) Pause Young (G1 Evacuation Pause) 14M->2M(128M) 4.556ms

上面的方式只能在標準輸出中看到打印日志,我們可以設置 gc日志輸出到文件中,便于我們分析問題。

$ java -jar -Xlog:gc=debug:file=gc.log sb-demo.jar

使用上面的方式就把 gc 日志輸出到了文件 gc.log 中。

$ head gc.log

[0.008s][debug][gc] ConcGCThreads: 1

[0.008s][debug][gc] ParallelGCThreads: 4

[0.008s][debug][gc] Initialize mark stack with 4096 chunks, maximum 16384

[0.010s][info ][gc] Using G1

當服務一直運行,gc.log會不斷增加,最后會撐滿我們的盤。我們可以設置日志的文件大小和數量

$ java -jar -Xlog:gc=debug:file=gc.log:uptimemillis,pids:filecount=5,filesize=1024 sb-demo.jar

上面設置只輸出 5 個文件,每個文件 1M,文件的基本名字是 gc.log, 使用啟動的時間和進程id來分割日志。

分析 gc log

可以直接打開日志文件查看或者上傳到 一些gc日志分析的網站上,直接出報表,至于這些在線的 Java gc 日志分析站點你可以 google一些,有很多供你選擇。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258120.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258120.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258120.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大數據時代的公共安全治理

未來,大數據將成為社會基礎設施的一部分,跟公路、自來水、電一樣,成為人們生活不可或缺的一部分。但大數據的作用并不僅僅局限于為普通消費者提供生活必須服務,它已經開始在信息產業、公共安全、交通運輸、金融、水利等領域中發揮…

CCNA第二講筆記

網絡定義:一組由介質(線纜)互聯的網絡設備(路由器、交換機)和終端系統(PC); 工作組:局域網范疇,范圍最小的局域網,且不涉及網絡設備。臺式機需要有…

晶科電力打造山東省最大物流港分布式光伏項目

近日,晶科電力有限公司宣布,由該公司投建的山東省最大物流港分布式光伏項目已破土動工,成為山東省又一標志性光伏項目。 該項目裝機量為6兆瓦,占用物流港廠房屋頂面積約68330平方米,平均每年發電量約601.22萬kWh&#…

服務器資源管理器視圖的添加顯示的步驟

MVC視圖查看數據庫表結構時,通常會打開服務器資源管理器視圖,在服務器資源管理器視圖中能查看表的數據集及表結構 打開的方法為: ①可使用快捷鍵: ctrlaltS ②也可添加“服務器資源管理器視圖”到“視圖”工具菜單,做法…

java中怎么用代碼打出ASCII碼字符_JAVA實現打印ascii碼表代碼

我就廢話不多說了&#xff0c;大家還是直接看代碼吧~package com.jalor;public class AAAA {public static void main(String[] args) {outputA(65);outputA(97);}// 打印ascii碼表public static void outputA(int count){for (int i 0; i < 26; i) {System.out.print((cha…

javascript this指針指向?

前言 理解javascript的指針就需要先了解js的執行環境和作用域&#xff01;執行環境的定義了變量或函數有權訪問的其他數據&#xff0c;決定了它們各自的行為。每個執行環境都有一個與之關聯的變量對象&#xff0c;環境中定義的所有的變量和函數都保存在這個對象中。雖然我們編寫…

能源局將提高光伏“領跑者”項目技術指標

記者從權威渠道獲悉&#xff0c;國家能源局正計劃對光伏“領跑者”中有關單多晶的轉換效率標準等細節進行修改。“領跑者”計劃中&#xff0c;光電轉換效率的修訂工作將在今年3月底展開&#xff0c;主要向各大相關機構、企業征求意見&#xff0c;如果爭議較多&#xff0c;定稿時…

phpize增加php模塊

一&#xff0c;phpize的好處 什么時候我們要用phpize呢&#xff1f;我們在安裝php時&#xff1a; ./configure --prefix/usr/local/php --with-mysql/usr/local/mysql --with-zlib-dir --with-freetype-dir/usr --with-jpeg-dir/usr --with-png-dir/usr --enable-gd-native-ttf…

java安全權限配置_使用Spring安全表達式控制系統功能訪問權限問題

一、SPEL表達式權限控制從spring security 3.0開始已經可以使用spring Expression表達式來控制授權&#xff0c;允許在表達式中使用復雜的布爾邏輯來控制訪問的權限。Spring Security可用表達式對象的基類是SecurityExpressionRoot。表達式函數描述hasRole([role])用戶擁有指定…

SlidingMenu的使用,結合Fragment(eclipse環境)

首先下載SlidingMenu&#xff0c;有Library和Sample&#xff0c;然后在自己的項目中引入類庫&#xff08;引入智慧北京工作空間的Library&#xff09;&#xff0c;然后V4包會發生沖突&#xff0c;刪掉自己項目Libs目錄下的V4包即可 側滑布局和主界面布局都先用一個空布局填充一…

log4j日志文件配置說明及使用

一.log4j.properties文件格式說明&#xff1a; log4j.rootLoggerinfo, stdoutlog4j.appender.stdoutorg.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layoutorg.apache.log4j.PatternLayout# Pattern to output the callers file name and line number.log4j.appende…

java如何做全局緩存_傳智播客JNI第七講 – JNI中的全局引用/局部引用/弱全局引用、緩存jfieldID和jmethodID的兩種方式...

講解JNI中的全局引用/局部引用/弱全局引用、緩存jfieldID和jmethodID的兩種方式&#xff0c;并編寫兩種緩存方式的示例代碼。1.從Java虛擬機創建的對象傳到本地C/C代碼時會產生引用&#xff0c;根據Java的垃圾回收機制&#xff0c;只要有引用存在就不會出發該引用指向的Java對象…

起一卦,還是那個破事。還是大兇。

公元&#xff1a;2013年6月20日11時48分46秒 陽3局農歷&#xff1a;2013年05月12日11時48分芒種&#xff1a;2013-6-5 20:44:00 小暑&#xff1a;2013-7-7 7:09:00干支&#xff1a;癸巳年 戊午月 丁巳日 丙午時 旬空&#xff1a;午未空 子丑空 子丑空 寅卯空直符&#…

老工業基地調整改造與振興

老工業基地調整改造與振興 一、運用“兩只手”&#xff0c;加快工業結構調整 一方面&#xff0c;運用市場機制即“看不見的手”進行調整。通過市場競爭機制、價格波動機糾、供求均衡機制、優勝劣汰機制等&#xff0c;實現資源的合理流動和優化配置。 另一方面&#xff0c;運用宏…

如何使用DNS反向映射來掃描IPv6地址?

目前增加的IPv6地址空間不僅提高了對啟發式算法的使用&#xff08;執行IPv6地址掃描時&#xff09;&#xff0c;而且還推動了人們探索替代技術用于查找IPv6節點。本文中我們將探討如何使用一種極其強大的向量來發現IPv6節點&#xff1a;使用DNS反向映射。 IPv6地址掃描攻擊通常…

java jre下載安裝教程_java JRE下載、安裝以及環境變量教程

java JRE下載、安裝以及環境變量教程作者:小丸子 來源:PC下載網時間:2017-10-17 19:12:33JRE也就是(Java Runtime Environment)Java運行環境&#xff0c;是運行JAVA程序所必須的環境的集合&#xff0c;包含各種類庫。今天PC下載網小編為您介紹jre的下載 安裝 跟環境變量的配置1…

java環境變量設置與java查看安裝路徑

把jdk安裝到計算機中之后&#xff0c;我們來進行設置使java環境能夠使用。 首先右鍵點我的電腦。打開屬性。然后選擇“高級”里面的“環境變量”&#xff0c;在新的打開界面中的系統變量需要設置三個屬性“JAVA_HOME”、 “path”、“classpath”,其中在沒安裝過jdk的環境下。p…

C#設計模式學習筆記-單例模式

C#設計模式學習筆記-單例模式 最近在學設計模式&#xff0c;學到創建型模式的時候&#xff0c;碰到單例模式&#xff08;或叫單件模式&#xff09;&#xff0c;現在整理一下筆記。 在《Design Patterns&#xff1a;Elements of Resuable Object-Oriented Software》中的定義是&…

kotlin為什么比java編譯慢_為什么Kotlin編譯速度比Scala快? [關閉]

雖然我認為這個問題不適合Stack Overflow&#xff0c;因為它傾向于主要產生基于意見的答案&#xff0c;但這里有一個嘗試&#xff1a;你有兩種不同的語言&#xff0c;特別是關于類型系統&#xff0c;以及兩個完全獨立的編譯器實現 . 所以期望它們具有“相同”的編譯速度已經是一…

錫山國土推行數據中心“在線變更”

為全面提高全區土地變更工作效率&#xff0c;國土錫山分局全面推行數據中心在線變更。由不動產登記科利用數據中心管理平臺&#xff0c;將遙感影像、監測信息以及監測圖斑的土地利用現狀信息、土地利用總體規劃信息錄入“數據中心”&#xff0c;制定我區的變更調查工作方案&…