首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

探討 5 種追蹤 Java 執行的方法

     編輯:Java 相關知識

前言

Zviki Cohen 基於探索與理解他人程式碼的經驗,發布追蹤 Java 執行過程的 5 種方法。他發現單純閱讀原始碼(有時為反編譯碼)枯燥且易出錯。作為替代,他推薦 5 種運行時追蹤方法,在 Java 程式碼運行時觀察它,消除學習他人程式碼的許多不利條件。

1. 基礎法:斷點與單步執行

最簡單開始:設定斷點並開始追蹤程式執行。
適用場景:需要快速簡單方案、擁有所有程式碼且知曉想在哪裡停止、需在給定斷點獲取詳細資訊(參數、區域變數等)。

2. 初階法:除錯訊息

透過設定除錯訊息繼續追蹤。最簡單用 System.out.println 列印到控制台。
適用場景:擁有程式碼且清楚尋找什麼。對事件處理器極佳。貫穿複雜流程執行時,高效能有助理解觸發了哪個事件。

3. 熱門法:動態代理

簡單除錯訊息的改進。動態代理是 Java 特性,允許開發者引入 proxy 類別在給定類別前,透過給定介面攔截所有呼叫。
適用場景:事件處理器的極佳方案。極短時間內用通用代理建立虛擬事件處理器,查看事件發生順序。理解事件處理器最簡單快捷方法。

4. 暴力法:運行時分析器

分析器透過特定 JVM hooks 在系統中追蹤所有呼叫的強大工具。但用來追蹤執行屬大材小用。
適用場景:想擁有特定操作完整畫卷(如極短執行流程)。

5. 新紀元:切面導向程式設計

AOP 是非凡想法。無需深入切面概念,只考慮其能力:攔截程式碼執行既快速又容易。可選擇性在方法、建構子、屬性存取等設定 hook,無需修改原始碼。在 hook 中列印除錯訊息。
適用場景:想追蹤可重構的程式碼執行。

註:Zviki Cohen 於 2007 年 2 月為 Amdocs 架構師與高級顧問,現為軟體業私營企業家。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved