一、寫在前面 上一篇文章 我們介紹了性能監控的一些命令,包括 jmap (生成堆存儲快照)和 jstack(生成線程快照),事實上,在沒有一些監控工具之前,我們用的最多的也是這兩個命令來進行虛擬機性能的監控調優。但是這兩個命令都有自己不足的地方: 使用 jmap 命令,從 Heap ...
BTrace 是什么 BTrace 是一個動態安全的 Java 追蹤工具,它通過向運行中的 Java 程序植入字節碼文件,來對運行中的 Java 程序熱更新,方便的獲取程序運行時的數據信息,並且,保證自己的消耗特別小,大部分情況下不會影響 Java 程序的性能。 BTrace 能干什么 相信每一位開發都或多或少的干過這檔子事:為了解決線上的一個 bug,不得不在代碼中打印下入參 出參數據,然后再重 ...
2020-04-11 15:54 0 596 推薦指數:
一、寫在前面 上一篇文章 我們介紹了性能監控的一些命令,包括 jmap (生成堆存儲快照)和 jstack(生成線程快照),事實上,在沒有一些監控工具之前,我們用的最多的也是這兩個命令來進行虛擬機性能的監控調優。但是這兩個命令都有自己不足的地方: 使用 jmap 命令,從 Heap ...
什么是Java虛擬機? Java虛擬機,從字面上來看,像是某種機器,但Java虛擬機之所以被稱之為“虛擬”的,是因為它是由一個規范來定義的抽象計算機,所以在我們說Java虛擬機的時候,可能指的是如下三種不同的東西: 抽象規范 一個具體的實現 一個運行中 ...
我們都知道在 Windows 系統上一個軟件包裝包是 exe 后綴的,而這個軟件包在蘋果的 Mac OSX 系統上是無法安裝的。類似地,Mac OSX 系統上軟件安裝包則是 dmg 后綴,同樣無法在 ...
虛擬機和故障處理的工具。這些工具被Sun公司作為禮物附贈給JDK的使用者。如下圖: 可以看到這 ...
1. 對象的創建 1. 遇到 new 指令時,首先檢查這個指令的參數是否能在常量池中定位到一個類的符號引用,並且檢查這個符號引用代表的類是否已經被加載、解析和初始化過。如果沒有,執行相應的類加載。 ...
1. 垃圾回收機制 Stop-the-World: JVM由於要執行GC而停止了應用程序的執行稱之為Stop-the-World,該情形會在任何一種GC算法中發生。當Stop-the-world發生時,除了GC所需的線程以外,所有線程都處於等待狀態直到GC任務完成。事實上,GC優化 ...
跟許多人一樣,我一開始接觸 Java 虛擬機只是因為面試需要用到,所以硬着頭皮看看。所以很多人對於為什么要學虛擬機這個問題,他們的答案都是:因為面試。但我經過了幾年的學習和實戰,我發現其實學習虛擬機並不僅僅在於面試,而在於更深入地理解 Java 這門語言,以及為未來排查線上問題打下基礎。 先聊 ...
說起 Java 虛擬機,許多人就會將其與 HotSpot 虛擬機等同看待。但實際上 Java 虛擬機除了 HotSpot 之外,還有 Sun Classic VM、Exact VM、BEA JRocketit、IBM J9 等等。今天我們就來簡單回顧下 Java 虛擬機的發展歷史。 虛擬機始祖 ...