6個經典Java GC調優工具介紹和示例詳解

正文:

進行GC性能調優時, 需要明確瞭解, 當前的GC行為對系統和用戶有多大的影響。有多種監控GC的工具和方法, 本章將逐一介紹常用的工具。

JVM 在程序執行的過程中, 提供瞭GC行為的原生數據。那麼, 我們就可以利用這些原生數據來生成各種報告。原生數據(raw data) 包括:

  • 各個內存池的當前使用情況,
  • 各個內存池的總容量,
  • 每次GC暫停的持續時間,
  • GC暫停在各個階段的持續時間。

可以通過這些數據算出各種指標, 例如: 程序的內存分配率, 提升率等等。本章主要介紹如何獲取原生數據。 後續的章節將對重要的派生指標(derived metrics)展開討論, 並引入GC性能相關的話題。

1,JMX API

從 JVM 運行時獲取GC行為數據, 最簡單的辦法是使用標準 JMX API 接口. JMX是獲取 JVM內部運行時狀態信息 的標準API. 可以編寫程序代碼, 通過 JMX API 來訪問本程序所在的JVM,也可以通過JMX客戶端執行(遠程)訪問。

最常見的 JMX客戶端是 JConsole 和 JVisualVM (可以安裝各種插件,十分強大)。兩個工具都是標準JDK的一部分, 而且很容易使用. 如果使用的是 JDK 7u40 及更高版本, 還可以使用另一個工具: Java Mission Control( 大致翻譯為 Java控制中心, jmc.exe)。

所有 JMX客戶端都是獨立的程序,可以連接到目標JVM上。目標JVM可以在本機, 也可能是遠端JVM. 如果要連接遠端JVM, 則目標JVM啟動時必須指定特定的環境變量,以開啟遠程JMX連接/以及端口號。 示例如下:

java -Dcom.sun.management.jmxremote.port=5432 com.yourcompany.YourApp

发表回复

相关推荐

战壕风衣,一段关于一战的残酷历史

2018年1月28日 前几日穿着刚做的风衣去爬了雪山,可能对很多人来说,风衣是一种时尚单品,而非户外运动装备。 这种战壕风 ...

· 1秒前

千万别养缅因猫,看完就知道为啥了

缅因猫原产于美国,长相霸气,内心温柔,对主人忠诚、服从。这么优秀的缅因猫,为什么很少人养,看完这几点,你就知道了,太 ...

· 1秒前

命運聖道之五樂

人類可以體驗到五種樂,是哪五種樂呢?這就是欲樂,戒樂,定樂,慧樂,解脫樂。什麼是欲樂呢?這裡,有人於眼見色,作有色想...

· 15秒前

耳梦不要小瞧外耳道炎,搞不好就会聋!

耳朵炎症大家都知道对身体的危害,那外耳道炎是什么你知道吗?

· 15秒前

電子產品設計的基本步驟以及如何做好方案設計

任何需要開發、生產或銷售電子產品的公司都會用到電子產品方案。一個好的電子產品方案設計能決定產品的功能、性能、質量還有...

· 22秒前

Copyright 2015-2025 www.icpchaxun.com ©All Rights Reserved.