NetBeans 6.0 整合強大的 Profiler,無需外掛即可對 Java SE、Java EE、Web 應用進行 CPU、記憶體、執行緒分析。本文以內建範例專案 Anagram Game 為例,完整演示三大分析任務與快照比較技巧。
Profile → Advanced Commands → Run Profiler Calibration
首次分析時,IDE 會修改 build.xml 匯入 nbproject/profiler-build-impl.xml,並備份原檔為 build-before-profiler.xml。可透過 Profile → Advanced Commands → Unintegrate 還原。
| 任務 | 用途 | 開銷 | 適用場景 |
|---|---|---|---|
| Monitor | JVM 高層遙測:Heap、GC、Thread 狀態 | 極低 | 長期監控、生產環境側寫 |
| Analyze CPU Performance | 方法層級耗時、呼叫次數、熱點路徑 | 中~高 | 效能調優、找出 Bottleneck |
| Analyze Memory Usage | 物件配置數量、大小、存活期、GC 代數 | 中~高 | 記憶體洩漏、GC 壓力分析 |
Profile → Profile Main Project → Monitor → RunWindow → Profiling → Telemetry Overview 觀察即時圖表
針對 WordLibrary.java 作為根方法,降低開銷:
Profile → Profile Main Project → CPU → Part of Applicationcom.toy.anagrams.lib.WordLibrary
Profile → Profile Main Project → Memory → Record both object creation and garbage collection
java.lang.String) → Take Snapshot and Show Allocation Stack Traces.nps)
Profile → Attach Profiler 連接遠端 JVM (需啟動 JMX/Profiler Agent)Track every N object allocations (預設 10) 平衡精度與開銷