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

以 Runtime Spy 優化 Eclipse 啟動效能(上):初探核心偵察工具

     編輯:Java 相關知識

為何 Eclipse 需極速啟動?

Eclipse 架構建立在動態發現擴展的基礎上,若擴展以程式碼方式定義,隨擴展增加啟動開銷將失控。解決之道:**外掛以清單檔靜態宣告擴展**,平台解析 XML 即可繪製初始 UI(圖示、工具提示等),延遲代碼載入至使用者實際互動時刻。XML 解析快且可快取,新增外掛不顯著影響啟動。但不當實作仍會破壞此機制,導致啟動緩慢、記憶體飆升。

Runtime Spy 正是為診斷此類問題而生的核心工具(Core Tools 組件),僅支援 Eclipse 2.x(3.0 相容性 Bug #47518 待修)。

安裝與啟動兩種偵察模式

  1. 偵察底層 Eclipse 設施:將 org.eclipse.core.tools 下的 .options 複製至 <inst_dir>/eclipse,以 -debug 參數啟動。若需監控類別載入,另需編輯 org.eclipse.core.boot/trace.properties 指定目標套件。
  2. 偵察運行期工作台:於 Run → Run As → Runtime Workbench 的 Tracing 頁面勾選選項(圖 8)。效能測量時建議僅啟用 monitor/plugins=true,其餘關閉以減少干擾。

Runtime Spy 透視圖四大視圖速覽

開啟後顯示(圖 2):

  • Activated Plugins:核心視圖。星號標記啟動期載入外掛(不含 org.eclipse.ui.startup 觸發者)。Order 欄位可依載入順序排序。刷新按鈕 更新列表。技巧:全選 → 操作 → 刷新 → 未選取者為新啟動外掛。
  • Loaded Classes:選取外掛後點擊刷新 顯示已載入類別。依載入順序排序可見「大局觀」,揭示啟動代碼執行全貌——啟示往往是「啟動時做太多事」。
  • Stack Trace:追蹤類別/外掛被載入的呼叫鏈。需先於 trace.properties 指定目標套件(如 packages=org.eclipse.jface.text),再於 Loaded Classes 選取類別點擊刷新 。堆疊中下部為關鍵業務邏輯(圖 5 高亮處)。
  • Plugin Datasheet:統計外掛定義的資源束、擴展點數量等(圖 7)。追蹤 IPluginDescriptor.getResourceString 載入情況。

追蹤外掛啟動原因:間接引用的迷霧

類別載入通常因直接引用(可查 import),但外掛啟動多因**間接引用**:

  1. 顯式依賴:清單檔 <import plugin="..."/>
  2. 隱式依賴:匯出套件至執行期 JAR

以 "Hello, Eclipse" 範例(清單 1):org.eclipse.ui.actionSets 擴展點貢獻隱式依賴 Workbench UI 外掛。平台讀取註冊表建立**委派 Action** 代理選單項,**真正 Action 類別僅在使用者點選時才實例化**,完美延遲外掛啟動。此機制為效能優化關鍵範本。

堆疊追蹤實戰:PDE 雙擊觸發的外掛啟動

圖 6 顯示 PDE Plug-ins 視圖雙擊觸發預設動作處理器 → 載入 org.eclipse.ui.editors → 呼叫 createExecutableExtension。堆疊高亮部分僅顯示擴展點處理器代碼,因對 Workbench 類別的引用是間接的。六次類似追蹤即可掌握 createExecutableExtension 前後關鍵環節,識別啟動源頭與後果。

其他實用透視圖與工具

  • Plug-in Dependency 透視圖:類似 Plug-in Registry 視圖,但含完整依賴鏈。
  • Metadata 透視圖:探索工作區 .metadata 結構(需深度理解工作區實作)。
  • Resource Tools 視圖:資源變更監聽器、Resource Delta、Builder 等洞察,學習工作區 API 必備。

下集預告

第二部分將實戰展示如何診斷 WebSphere Studio 5.1.1 的多個啟動問題,視開啟視圖/透視圖不同,啟動效能提升 11%~37%,證明理解外掛啟動時機與原因是實現 Eclipse 極速啟動的關鍵。敬請期待 WebSphere Studio 6.0 真正實現啟動效能飛躍!

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