您現在的位置是:首頁 > 遊戲

3種不同Java分析器,以及為什麼需要它們

由 Java培訓機構 發表于 遊戲2022-09-21
簡介JavaAPM工具通常使用Java代理探查器方法,但使用不同的檢測規則,以允許它們在不影響生產效能的情況下執行

變速齒輪需要什麼java

在生產環境中除錯效能問題可能是一件痛苦的事情,在某些情況下,如果沒有正確的工具是不可能的。Java分析器已經存在了很久,但是大多數開發人員想到的分析器只有一種型別。

1。標準JVM分析器

VisualVM、JProfiler、YourKit和Java任務控制等產品。

標準Java分析器當然提供了最多的資料,但不一定提供了最有用的資訊。這取決於除錯任務的型別。這些分析器將跟蹤所有方法呼叫和記憶體使用情況。這允許開發人員以他們選擇的任何角度深入研究呼叫結構。

優勢:

標準探查器非常適合跟蹤記憶體洩漏,它詳細說明了JVM使用的所有記憶體以及哪些類/物件負責。手動執行垃圾收集,然後檢查記憶體消耗的能力可以很容易地將焦點放在錯誤地保留記憶體的類和程序上。

Java探查器通常提供一個CPU取樣功能,用於按類和方法跟蹤和聚合CPU時間,以幫助關注熱點。

劣勢:

需要直接連線到受監控的JVM;在大多數情況下,這最終限制了對開發環境的使用。(注意:某些探查器可以以有限的方式進行執行緒外轉儲和記憶體轉儲。)

它們會減慢您的應用程式;提供高水平的細節需要大量的處理能力。

3種不同Java分析器,以及為什麼需要它們

2。輕量級Java事務分析器

XRebel和StackifyPrefix等產品。

輕量級分析器透過將自身注入程式碼中,在跟蹤應用程式時採用不同的方法。

方面分析器使用面向方面程式設計(AOP)將程式碼注入指定方法的開始和結束。注入的程式碼可以啟動計時器,然後在方法完成時報告經過的時間。這些分析器的設定很簡單,但您需要知道要評測什麼。有關示例,請參見SpringAOP方法評測。

Java代理探查器使用JavaInstrumentationAPI將程式碼注入到應用程式中。由於程式碼是在位元組碼級別重寫的,因此此方法可以更好地訪問應用程式。這允許檢測應用程式中執行的任何程式碼,無論是您編寫的程式碼還是您的應用程式所依賴的第三方庫。檢視Java代理簡介,瞭解這一切是如何工作的。

AspectProfiler非常容易設定,但在監視內容方面受到限制,並且由於詳細列出了要跟蹤的所有內容而受到阻礙。Java代理在跟蹤深度方面有很大優勢,但編寫起來要複雜得多。

3。低開銷,生產中的JavaJVM評測(APM)

APM工具,如NewRelic、AppDynamics、StackifyRetrace、Dynatrace。

到目前為止,所有的探查器都非常適合開發,但是跟蹤系統在生產中的效能是至關重要的。生產始終是一個不同的環境-開發和階段設定通常不具有相同的資料集和負載。

JavaAPM工具通常使用Java代理探查器方法,但使用不同的檢測規則,以允許它們在不影響生產效能的情況下執行。這些分析器的訣竅是以智慧的方式提供正確的資訊,以避免佔用CPU週期。

為什麼有些Java分析器如此昂貴?

APM解決方案的最大問題肯定是它們的定價。傳統上,它們非常昂貴,只有最大的企業才能負擔得起。每月花100美元在Azure或AWS的伺服器上,然後再每月花200美元購買NewRelic這樣的產品,這沒有多大意義。

監控工具的成本不應該超過伺服器!

推薦文章