簡體   English   中英

分析Java EE1.5或SE1.6

[英]Profiling Java EE1.5 or SE1.6

我是Java分析的新手,我想問一下。

在只有控制台的服務器上分析應用程序是否有意義?

是否有任何有意義的控制台分析器?

還是應該僅在本地主機上分析應用程序?

VisualVM能夠連接到遠程主機。 配置文件的工作方式與本地相同。 自JDK 6更新7起,它是JDK的一部分。

在進行性能分析時,通常應盡量重現生產環境。 硬件(內核,內存等的數量)和軟件(操作系統,JVM版本)的差異會使分析結果與運行時環境一樣獨特。

例如,看似值得在本地計算機上進行優化的CPU瓶頸,根據CPU的不同,它可能會完全消失或變成生產服務器上的磁盤瓶頸。

所有現代的探查器都將允許連接到遠程運行的JVM,因此您不必擔心僅具有控制台訪問權限。

您決定使用哪種探查器將取決於您的需求和偏好。 某些探查器會向您顯示“熱點”,其中代碼花費了大部分時間,這些熱點通常是進行優化的理想選擇。

我更喜歡使用JProfiler,因為它具有廣泛的功能和良好的性能。 我以前使用過YourKit,但由於其內存和線程分析功能而切換到JProfiler。

在只有控制台的服務器上分析應用程序是否有意義?

幸運的是,這無關緊要,因為Java一直(長期以來,無論如何)都支持遠程概要分析,即Profiler可以在與正在概要分析的JVM不同的機器上運行,並通過網絡獲取其數據。

我見過的所有Java分析器都支持此功能,包括visualvm,它是最新JDK附帶的(在bin目錄中)。

有一種“快速而又骯臟”的有效方法來查找Java中的性能問題。 是語言不可知的解釋。

注意,JDK帶有內置的探查器HPROF。 HPROF有點簡單,但是會發現很多問題。 只需使用參數-agentlib:hprof調用JVM即可激活它。 只要JVM運行,它就會自動運行。 它收集數據,直到JVM終止,然后將其轉儲到服務器上的文件中,您可以對其進行分析。

有關良好的介紹,請參見例如http://java.sun.com/developer/technicalArticles/Programming/HPROF.html PerfAnal是HPROF結果的一個很好的圖形分析器: http : //java.sun.com/developer/technicalArticles/Programming/perfanal/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM