成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分享Java性能監控的幾個小技巧

開發 后端
本文介紹的是Java性能監控的一些小技巧,希望能對你有幫助,一起來看。

很多開發者覺得自己懂Java編程,事實是大多數開發人員都只領會到了Java平臺的皮毛,所學也只夠應付工作。作者將深度挖掘Java平臺的核心功能,揭示一些鮮為人知的事實,幫助您解決最棘手的編程困難。

當應用程序性能受到損害時,大多數開發人員都驚慌失措,這在情理之中。跟蹤Java應用程序瓶頸來源一直以來都是很麻煩的,因為Java虛擬機有黑盒效應,而且Java平臺分析工具一貫就有缺陷。

然而,隨著Java5中JConsole的引入,一切都發生了改變。JConsole是一個內置Java性能分析器,可以從命令行或在GUIshell中運行。它不是完美的,但是當尖頭老板來問你關于性能的問題時,用它來應對還是綽綽有余的——這比查詢PapaGoogle要好得多。

我們將向您展示5個方法,使您可以輕松地使用JConsole(或者,它更高端的“近親”VisualVM)來監控Java應用程序性能和跟蹤Java中的代碼。

1.JDK附帶分析器

許多開發人員沒有意識到從Java 5開始JDK中包含了一個分析器。JConsole(或者Java平臺最新版本,VisualVM)是一個內置分析器,它同Java編譯器一樣容易啟動。如果是從命令行啟動,使JDK在PATH上,運行jconsole即可。如果從GUIshell啟動,找到JDK安裝路徑,打開bin文件夾,雙擊jconsole。

當分析工具彈出時(取決于正在運行的Java版本以及正在運行的Java程序數量),可能會出現一個對話框,要求輸入一個進程的URL來連接,也可能列出許多不同的本地Java進程(有時包含JConsole進程本身)來連接。

使用JConsole進行工作

在Java 5中,Java進程并不是被設置為默認分析的,而是通過一個命令行參數—-Dcom.sun.management.jmxremote——在啟動時告訴Java 5 VM打開連接,以便分析器可以找到它們;當進程被JConsole撿起時,您只能雙擊它開始分析。

分析器有自己的開銷,因此最好的辦法就是花點時間來弄清是什么開銷。發現JConsole開銷最簡單的辦法是,首先獨自運行一個應用程序,然后在分析器下運行,并測量差異。(應用程序不能太大或者太小;我最喜歡使用JDK附帶的SwingSet2樣本。)因此,我使用-verbose:gc嘗試運行SwingSet2來查看垃圾收集清理,然后運行同一個應用程序并將JConsole分析器連接到它。當JConsole連接好了之后,一個穩定的GC清理流出現,否則不會出現。這就是分析器的性能開銷。

JConsole或VisualVM?

JConsole從Java 5開始就隨著Java平臺版本一起發布,而VisualVM是在NetBeans基礎上升級的一個分析器,在Java 6的更新版12中第一次發布。多數還沒有更新到Java 6,因此這篇文章主要介紹JConsole。然而,多數技巧和這兩個分析器都有關。

2.遠程連接進程

因為Web應用程序分析工具假設通過一個套接字進行連通性分析,您只需要進行少許配置來設置JConsole(或者是基于JVMTI的分析器,就這點而言),監控/分析遠程運行的應用程序。

如果Tomcat運行在一個名為“webserve”的機器上,且JVM已經啟動了JMX并監聽端口9004,從JConsole(或者任何JMX客戶端)連接它需要一個JMX URL“service:jmx:rmi:///jndi/rmi://webserver:9004/jmxrmi”。

基本上,要分析一個運行在遠程數據中心的應用程序服務器,您所需要的僅僅是一個JMX URL。

3.跟蹤統計

JConsole有許多對收集統計數據有用的選項卡,包括:

  • Memory:在JVM垃圾收集器中針對各個堆跟蹤活動。
  • Threads:在目標JVM中檢查當前線程活動。
  • Classes:觀察VM已加載類的總數。

這些選項卡(和相關的圖表)都是由每個Java 5及更高版本VM在JMX服務器上注冊的JMX對象提供的,是內置到JVM的。一個給定JVM中可用bean的完整清單在MBeans選項卡上列出,包括一些元數據和一個有限的用戶界面來查看數據或執行操作。(然而,注冊通知是在JConsole用戶界面之外。)

使用統計數據

假設一個Tomcat進程死于OutOfMemoryError。如果您想要弄清楚發生了什么,打開JConsole,單擊Classes選項卡,過一段時間查看一次類計數。如果數量穩定上升,您可以假設應用程序服務器或者您的代碼某個地方有一個ClassLoader漏洞,不久之后將耗盡PermGen空間。如果需要更進一步的確認問題,請看Memory選項卡。

不要成為典型

發現應用程序代碼中性能問題的常用響應多種多樣,但也是可預測的。早期的Java編程人員對舊的IDE可能十分生氣,并開始進行代碼庫中主要部分的代碼復查,在源代碼中尋找熟悉的“紅色標志”,像異步塊、對象配額等等。隨著編程經驗的增加,開發人員可能會仔細研究JVM支持的-X標志,尋找優化垃圾收集器的方法。當然,對于新手,直接去Google查詢,希望有其他人發現了JVM的神奇的“make it go fast”轉換,避免重寫代碼。

從本質上來說,這些方法沒什么錯,但都是有風險的。對于一個性能問題最有效的響應就是使用一個分析器——現在它們內置在Java平臺,我們確實沒有理由不這樣做! 

4.為離線分析創建一個堆轉儲

生產環境中一切都在快速地進行著,您可能沒有時間花費在您的應用程序分析器上,相反地,您可以為Java環境中的每個事件照一個快照保存下來過后再看。在JConsole中您也可以這樣做,在VisualVM中甚至會做得更好。

先找到MBeans選項卡,在其中打開com.sun.management節點,接著是HotSpotDiagnostic節點。現在,選擇Operations,注意右邊面板中的“dumpHeap”按鈕。如果您在第一個(“字符串”)輸入框中向dumpHeap傳遞一個文件名來轉儲,它將為整個JVM堆照一個快照,并將其轉儲到那個文件。

稍后,您可以使用各種不同的商業分析器來分析文件,或者使用VisualVM分析快照。(記住,VisualVM是在Java 6中可用的,且是單獨下載的。)

5.JConsole并不是高深莫測的

作為一個分析器實用工具,JConsole是極好的,但是還有更好的工具。一些分析插件附帶分析器或者靈巧的用戶界面,默認情況下比JConsole跟蹤更多的數據。

JConsole真正吸引人的是整個程序是用“普通舊式Java”編寫的,這意味著任何Java開發人員都可以編寫這樣一個實用工具。事實上,JDK其中甚至包括如何通過創建一個插件來定制JConsole的示例。建立在NetBeans頂部的VisualVM進一步延伸了插件概念。

如果JConsole(或者VisualVM,或者其他任何工具)不符合您的需求,或者不能跟蹤您想要跟蹤的,或者不能按照您的方式跟蹤,您可以編寫屬于自己的工具。如果您覺得Java代碼很麻煩,Groovy或JRuby或很多其他JVM語言都可以幫助您更快完成。

您真正需要的是一個快速而粗糙(quick-and-dirty)的由JVM連接的命令行工具,可以以您想要的方式確切地跟蹤您感興趣的數據。

結束語

Java性能監控不止于JConsole或VisualVM——在JDK中隱藏著一整套工具,只是大多數開發人員并不知道。

【編輯推薦】

  1. 介紹幾個主流的Java連接池
  2. 簡單介紹Java 網絡程序
  3. 詳細介紹java中的數據結構
  4. JAVA基礎之一維數組和多維數組
  5. java基礎之如何學習java程序設計
責任編輯:于鐵 來源: 互聯網
相關推薦

2011-06-28 13:56:43

JAVA

2011-06-13 17:36:43

外鏈

2011-03-23 16:24:44

LAMPMySQL

2015-02-04 10:32:57

Objective-CSwift

2009-06-17 15:38:57

java軟件安裝

2011-01-19 09:07:20

Thunderbird

2011-03-02 17:56:40

DB2數據庫

2018-11-13 15:50:41

干貨Java源碼

2010-05-26 16:44:27

Linux流量監控

2023-05-30 11:52:11

索引冗余索引

2014-09-17 11:20:38

AndroidListView技巧

2024-11-15 10:45:56

2011-07-15 17:35:19

JavaScript

2012-09-11 14:55:29

Moosefs

2022-11-16 09:04:36

SQL查詢SELECT

2009-12-23 17:07:37

WPF性能

2011-06-13 17:15:20

內鏈

2009-12-09 17:33:22

PHP性能優化

2011-07-11 10:24:09

PHP

2011-07-12 18:20:45

降權
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人激情视频免费在线观看 | 日韩av大片免费看 | 精品久久香蕉国产线看观看亚洲 | 精品美女视频在线观看免费软件 | 自拍 亚洲 欧美 老师 丝袜 | 亚洲福利精品 | 国产2区 | 99视频网站| 日本三级电影免费 | 国产精品久久久久久一区二区三区 | 国产乱码精品一区二区三区五月婷 | 欧美.com | 懂色中文一区二区在线播放 | 欧美男人天堂 | 成人在线免费视频 | 午夜小视频在线观看 | 国产色黄 | 久久精品亚洲精品国产欧美 | 国产一级视频免费播放 | 国产精品久久 | 亚洲国产网站 | 一区二区三区视频 | 国产伦精品一区二区三区高清 | 久久久精| 日本久久久久久久久 | 精品国产欧美一区二区三区成人 | 婷婷91| 日韩中文字幕免费在线观看 | 免费激情 | 国产精品久久久久久模特 | 亚洲精品在线免费观看视频 | 国产国产精品久久久久 | 国内精品免费久久久久软件老师 | 神马久久春色视频 | av av在线 | 欧美精品在线一区 | 午夜午夜精品一区二区三区文 | 色婷婷综合网 | 不卡一区二区三区四区 | 91精品久久久久久久久 | 成人妇女免费播放久久久 |