JProfiler是一款電腦JVM監控工具,該軟件能對JAVA進行多樣全面的分析,界面直觀使用簡單,能查找多個不同內容進行剖析,專業高效,讓你輕松管控。
軟件介紹
JProfiler(java分析軟件)官方版是款功能十分全面、簡單易操作的Java剖析工具(profiler),JProfiler(java分析軟件)官方版頁面簡潔美觀、極易上手。JProfiler(java分析軟件)最新版專用于分析J2SE和J2EE應用程序。JProfiler直覺式的GUI讓你可以找到效能瓶頸、抓出內存漏失(memory leaks)、并解決執行緒的問題。
JProfiler 是一個全功能的Java剖析工具(profiler),專用于分析J2SE和J2EE應用程序。JProfiler直覺式的GUI讓你可以找到效能瓶頸、抓出內存漏失(memory leaks)、并解決執行緒的問題。它把CPU、執行緒和內存的剖析組合在一個強大的應用中。

軟件特色
本地會話實時分析模式
用戶一旦定義好了其應用程序啟動方式,JProfiler即能對之進行設置,用戶即刻便能從設置好的JVM中看到實時數據。用戶若不想進行會話配置,其可以從多個IDE插件中選擇其最喜歡的那個對應用程序進行配置。
遠程會話實時分析模式
通過修改Java開始命令行方式的VM參數,用戶可使任意Java應用程序監聽來自的JProfiler GUI的連接。該設置程序不但可以在本地計算機上運行,還可以在網絡中作為某個設置程序的附加程序使用。此外,JProfiler還提供了相當多的集成向導,可用于主流的可以幫助用戶安裝和設置其應用程序的應用程序服務器。
離線分析模式
用戶無需通過JProfiler GUI連接應用程序即可對之進行設置。在離線設置模式下,用戶可以使用功能強大的JProfiler觸發系統或者JProfiler' API對設置代理進行控制,然后將快照保存入磁盤。稍后用戶便可使用命令行導出工具或者螞蟻任務導出工具,在JProfiler GUI或編程方式的設置導出視圖中打開這些快照。
快照比較
在JProfiler中,用戶可以將當前的所有設置數據保存為一個快照存入磁盤中。JProfiler提供了豐富的比較功能以對比兩個或者多個快照之間的不同。用戶可從編程的命令行比較工具和ant task比較工具中選擇其一創建對比報告。
查看HPROF快照
JProfiler能打開用JVM工具(比如jconsole、 jmap或通過-XX:+HeapDumpOnOutOfMemoryError JVM參數觸發)創建的HPROF快照文件

軟件功能
1.內存剖析 Memory profiler
JProfiler 的內存視圖部分可以提供動態的內存使用狀況更新視圖和顯示關于內存分配狀況信息的視圖。所有的視圖都有幾個聚集層并且能夠顯示現有存在的對象和作為垃圾回收的對象。
所有對象
顯示類或在狀況統計和尺碼信息堆上所有對象的包。你可以標記當前值并顯示差異值。
記錄對象 Record objects
顯示類或所有已記錄對象的包。你可以標記出當前值并且顯示差異值。
分配訪問樹 Allocation call tree
顯示一棵請求樹或者方法、類、包或對已選擇類有帶注釋的分配信息的J2EE組件。
分配熱點 Allocation hot spots
顯示一個列表,包括方法、類、包或分配已選類的J2EE組件。你可以標注當前值并且顯示差異值。對于每個熱點都可以顯示它的跟蹤記錄樹。

2.堆遍歷 Heap walker
在JProfiler的堆遍歷器(Heap walker)中,你可以對堆的狀況進行快照并且可以通過選擇步驟下尋找感興趣的對象。堆遍歷器有五個視圖:
為單個對象和“顯示到垃圾回收根目錄的路徑”提供索引圖的顯示功能。還能提供合并輸入視圖和輸出視圖的功能。
顯示一個對已記錄對象的解決時間的柱狀圖。
3. CPU 剖析 CPU profiler
JProfiler 提供不同的方法來記錄訪問樹以優化性能和細節。線程或者線程組以及線程狀況可以被所有的視圖選擇。所有的視圖都可以聚集到方法、類、包或J2EE組件等不同層上。CPU視圖部分包括:
顯示一個積累的自頂向下的樹,樹中包含所有在JVM中已記錄的訪問隊列。JDBC,JMS和JNDI服務請求都被注釋在請求樹中。請求樹可以根據Servlet和JSP對URL的不同需要進行拆分。
顯示消耗時間最多的方法的列表。對每個熱點都能夠顯示回溯樹。該熱點可以按照方法請求,JDBC,JMS和JNDI服務請求以及按照URL請求來進行計算。
軟件亮點
卓越的易用性
Profiler簡單而強大,同時它的配置會話是直接的,第三方集成使得開始輕松,分析數據以自然的方式呈現。在各個層次上,JProfiler經過精心設計,可以幫助您開始解決問題。
JDBC、JPA和NOSQL的數據庫分析

JProfiler的JDBC和JPA/Hibernate探測器以及MongoDB,Cassandra和HBase的NoSQL探測器顯示了數據庫訪問緩慢以及代碼緩慢的語句調用原因。從JDBC時間線視圖顯示所有與其活動的JDBC連接,通過熱點視圖,顯示各種遙測視圖的慢速語句和單個事件列表,數據庫探針是深入了解數據庫層的重要工具。
極好的支持JAVA企業版
在JProfiler中的大多數視圖中存在JEE的專用支持。例如,在JEE聚合級別中,您可以根據應用程序中的JEE組件看到調用樹。另外,每個請求URI都會分配調用樹。此外,JProfiler在低級別分析數據之上添加了語義層,如在CPU分析視圖中呈現的JDBC,JPA/Hibernate,JMS和JNDI調用。憑借其JEE支持,JProfiler彌合了代碼分析器和高級JEE監視工具之間的差距。
更高級別的分析數據
JProfiler有許多探針可以顯示JRE中有趣子系統的更高級別的數據。除了JavaEE子系統,如JDBC,JPA/Hibernate,JSP/Servlets,JMS,Web服務和JNDI之外,JProfiler還提供了有關RMI調用,文件,套接字和進程的高級信息。這些探針中的每一個都有自己的一組有用的視圖。所有這些視圖也可用于您可以在JProfiler中即時配置的自定義探針。
內存泄漏分析
JProfiler的堆步行器為您提供了一個直觀的界面來解決簡單和復雜的內存問題。5個不同的視圖和大量的檢查顯示當前對象集的不同方面。每個視圖都提供對所選對象的基本見解,并允許您切換到不同的對象集。
廣泛的質量保證能力
快照的豐富功能可以輕松跟蹤進度。JProfiler對命令行操作有很強的支持。這包括配置,導出快照數據和從命令行創建快照比較的功能。與JProfiler綁定的ant任務允許您從構建腳本執行所有命令行操作。

最廣泛的支持平臺,IDE和應用服務器
集成到所有流行的IDE中,使開發過程中的分析與運行應用程序一樣簡單。并且市場上幾乎所有應用服務器的大量集成向導確保您可以開始點擊幾次,而不是閱讀文檔。
低開銷
JProfiler只在需要時記錄數據。實際上,您可以使用JProfiler代理啟動應用程序,并在以后連接JProfilerGUI。當您不記錄任何數據時,開銷非常小。JProfiler顯示您的性能分析設置如何影響性能,并為您提供模板以快速選擇常見用例的性能分析設置。
強大的CPU分析器
修復性能瓶頸是分析器最常用的用例。使用JProfiler,當您嘗試找到問題的原因時,您將具有決定性的優勢。調用樹視圖過濾器,聚合級別和線程狀態選擇器只是JProfiler在此領域的多功能性的一些示例。
集成螺紋輪廓儀
使用JProfiler可以解決一系列不透明的問題,例如在使用過多鎖定的多線程應用程序中增加活動性。線程分析不僅在JProfiler中有一個單獨的視圖部分,它也被緊密地集成到CPU分析視圖中。
使用教程
JProfiler的使用比較難,尤其是沒有中文化語言的話,入門起來比較困難,所以小編這里帶來基礎教程,首先學會最簡單的使用方法,才能逐漸精進,那么請看下面的教程吧:
1. 點擊jprofiler.exe
2. 執行菜單SessionàIntegration WizardsàNew ServerIntegration


選擇是本地測試還是遠程測試:

選擇tomcat運行的腳本文件:

選擇虛擬機的類型:

選擇監控端口:
用默認的即可

選擇Web容器是否和Jprofiler一起運行:
默認即可

配置提示:
在“遠程控制”的時侯要仔細閱讀一下。

然后選擇立即起動,開始運行。

點擊“OK”,我們可以看到另外一個小窗口出來了:

Jprofiler的窗口為:

這樣我們就可以進行監控了!
怎么看內存問題
JProfiler對于內存溢出的監控功能非常實用,可以很好的對內存問題進行分析預警,用戶能更加放心的使用,那么怎么才能對JProfiler進行設置來查看內存問題呢?下面的教程能讓你輕松學會。
1. 初始化檢驗環境:
切換到“Live Memory-->All Objects”標簽,可以看到當前tomcat中的對象情況,注意jprofiler其他版本可能位置不一樣.

在執行操作前,需要先F4,運行“Run GC”,使jvm進行內存回收清理無效的對象.為了便于比較內存的增長情況,可以點擊右鍵--->"Mark Current",
來將當前內存使用情況作為參照;點擊后會顯示“Difference”列,該列會列出對象數量的變化和變化比率

2.打開內存記錄:
點擊“Start Recordings”按鈕,開始記錄。執行這步的主要目的是為下面“Heap Walker”設置一個監控區間;如果不記錄的話“Heap Walker”將分析jvm虛擬機的所有內存,即耗時又不能準確的發現內存泄漏的原因。
3. 執行操作,執行gc;
使用壓力工具訪問被測應用,執行完之后再次F4進行GC----這樣是為了消除可以回收的對象。執行內存回收后,仍然存在于內存中的對象有可能是泄漏的對象。如下圖instance count中紅色的部門為不能回收的對象,difference列列出了增加的對象數量和增。以String為例,在該操作中增加了31751個對象增幅達到了14%,隨后會在HeapWalker中觀察這些對象,分析哪些對象是泄漏的。一般引起泄漏的對象包括:String、char[]、HashMap、Concurrenthashmap等,這類對象需要重點關注下;
4. 關閉內存記錄:
點擊“Stop Recordings”關閉內存記錄,告訴jProfiler把這段記錄作為分析對象;
5. 找到增加迅速的對象類型,打開HeapWalker:
在視圖中找到增長快速的對象類型,本例Concurrenthashmap的增長速度很快。在memory視圖中找到Concurrenthashmap---點右鍵----選擇“Show Selectiion In Heap Walker”,切換到HeapWarker 視圖;切換前會彈出選項頁面,注意一定要選擇“Select recorded objects”,這樣Heap Walker會在剛剛的那段記錄中進行分析;否則,會分析tomcat的所有內存對象,這樣既耗時又不準確;

6. 在HeapWalker中,找到泄漏的對象;
HeapWarker 會分析內存中的所有對象,包括對象的引用、創建、大小和數量;


HeapWarker視圖下方可以進行頁面切換:
通過切換到References頁簽,可以看到這個類的具體對象實例。

為了在這些內存對象中,找到泄漏的對象(應該被回收),可以在該對象上點擊右鍵,選擇“Use Selected Instances”縮小對象范圍;

單擊OK按鈕
7. 通過引用分析該對象:
在References引用頁簽中,可以看到該對象的的引用關系,可以切換incoming/outcoming,顯示引用的類型:
incoming 表示顯示這個對象被誰引用;
outcoming 表示顯示這個對象引用的其他對象;

選擇“Show In Graph”將引用關系使用圖形方式展現;

選中該對象,點擊“Show Paths To GC Root”,會找到引用的根節點;

在上圖中,我們可以發現,這個HashMap Segment對象最終的引用是在ConcurrentHashMap和ReentranLock對象中;
8. 通過創建分析該對象:
如果第7步還不能定位內存泄露的地方,我們可以嘗試使用Allocations頁簽,該頁簽顯示對象是如何創建出來的;
我們可以從創建方法開始檢查,檢查所有用到該對象的地方,直到找到泄漏位置;

怎么連遠程服務
連接遠程服務能更好的查看和監控遠端服務器,JProfiler想要連接遠程服務需要經過一些操作,需要進行連接的用戶,可以查看下面的使用方法學會:
服務端
1.找到本地Tomcat的bin目錄下剛才連接本地tomcat生成的兩個JproFiler文件:
startup_jprofiler.bat ; startup_jprofiler.sh
把startup_jprofiler.sh文件移動到遠程服務器端的Tomca的bin目錄下

2.載遠程服務端的linux命令窗口進入tomca/bin目錄下,然后運行startup_jprofiler.sh文件。(在之前記得service ipatbles stop來停止防火墻)

3.如果出現下圖代碼行就說明遠程啟動Jprofiler成功

客戶端
1.新建一個session

2.選擇遠程tomcat版本

3.選擇遠程服務器,系統選擇linux

4.選擇遠程端的JDk版本號

5.選擇next,再出現的頁面填寫遠程服務器的IP:

6.選擇遠程服務器jprofiler的安裝路徑:

7.選擇本地Tomcat的startup.sh的執行路徑:

8.然后點擊選擇默認端口,Yes馬上啟動

9.出現正在連接...

10.選擇Ok

11.然后遠程連接成功:

注意:如果遠程服務器連接失敗,請重啟服務器,再次連接,就OK!
更新內容
一、使用腳本探針,您可以直接在JProfiler UI中定義有效載荷探測器。它們取代了舊的自定義探頭,并且配置起來更容易。對于每個方法攔截,您可以配置一個腳本,將攔截的有效負載作為字符串返回。

調用樹的上下文菜單包含一個操作,可以很容易地為腳本探測器選擇截取的方法。

每個腳本探針在“JEE&probes”部分添加一個新視圖,其中包含有效負載熱點,默認遙測和探測事件視圖。

一個搖籃插件已被添加。Gradle插件是從Gradle插件門戶加載的,但不包括JProfiler發行版。要使用任何JProfiler Gradle任務,請使用開始構建腳本
插件{ id'com.jprofiler'version'XYZ'}jprofiler { installDir = file('/ path / to / jprofiler / home')}
使用分析任務和包含觸發器的預配置會話,您可以在構建過程中自動執行分析會話:
任務運行(鍵入:com.jprofiler.gradle.JavaProfile){ main ='com.mycorp.MyMainClass' classpath sourceSets.main.runtimeClasspath offline = true sessionId = 80 configFile = file('config / config.xml')}
還有命令行導出和命令行比較的任務,以及使用堆轉儲預先分析快照。
二、堆棧中 的合并參考視圖已被重新實現,現在更加可用和有用。視圖現在顯示每個節點上的引用持有者和引用對象,并使引用關系更清晰。

另外,引用可以按類而不是按字段進行分組。這是合并參考視圖的新默認模式。JProfiler中的緊湊型引用類型不直接支持的許多非標準集合類型會以這種方式自動折疊。

在合并的傳入參考視圖中的每個節點上,可以選擇當前對象集中以此方式引用的對象或特定節點的引用持有者。

三、一個合并的主導引用視圖已經被添加到堆沃克。與合并的傳入引用不同,合并的控制引用顯示必須消除哪些引用才能使當前對象集中的部分或全部對象符合垃圾回收的條件。
在多個獨立GC根的情況下,當前對象集中的部分或全部對象可能無法通過支配引用來引用,因此視圖可能為空。合并的支配引用使用與最大對象視圖相同的數據,因此引用可以是傳遞的,而不需要父節點和子節點之間的直接引用。

合并的支配參考視圖可以顯示當前對象組對GC根的引用,反之亦然。根據您要消除的引用是關閉當前對象集中的對象還是靠近GC根,一個或另一個模式更方便。

在堆棧中,最大對象視圖中的類和類加載器分組已添加。如果您擁有同一班級的許多最大對象,切換到班級分組以獲得更好的照片非常有用。

如果類加載器是您調查的重要方面,那么類加載器分組將幫助您找出最大對象的類來自何處。

四、在MongoDB的異步驅動器現在支持。在MongoDB探測中,代碼的異步執行與觸發數據庫操作的堆棧跟蹤綁定在一起。是否使用同步或異步驅動程序由熱點以下的第一個節點或事件視圖中堆棧跟蹤的第一個節點指示。

五、一個探測器遙測概覽已添加,結合了探頭的所有遙測數據。就像標準VM遙測概述一樣,您可以點擊遙測名稱來顯示完整視圖。

六、節點詳細信息對話框中的快速搜索已實施。節點詳細信息對話框是探測負載字符串可能非常長的重要工具,例如JDBC視圖中的SQL語句。將鼠標移動到文本區域上時,快速搜索和將所有文本復制到剪貼板的操作變得可見。

七、JProfiler 9已經支持Java 9的分析,但JProfiler UI和所有命令行工具現在可以在Java 9上運行。這對于JProfiler UI現在可以使用Java 9中的新HiDPI支持的Linux桌面尤其重要。
JProfiler大量使用直接在JProfiler中輸入的腳本。現在您可以選擇Java 9 + JRE來編譯這些腳本。
另外,從該版本開始,可以使用 JProfiler支持的所有功能對Java 10進行概要分析。
精品推薦
-
Microsoft .Net Framework4.7.2中文版
詳情 -
.Net3.5
詳情 -
.Net3.5 64位win10離線安裝包
詳情 -
MarkdownPad2
詳情 -
.Net Framework 4.0 32位離線安裝包
詳情 -
RPGVXACE RTP
詳情 -
Cmder(windows命令行工具)
詳情 -
jetbrains全系列激活工具
詳情 -
西瓜創客Python客戶端
詳情 -
scratch免激活離線版
詳情 -
鯨魚積木編程專業版
詳情 -
visual unit許可證破解補丁
詳情 -
Cameyo
詳情 -
Microsoft .Net Framework 4.0完整版
詳情 -
Scratch Link
詳情 -
微軟DirectX9.0c最終用戶運行庫
詳情
裝機必備軟件



網友評論