Class CPUSampler
java.lang.Object
tools.CPUSampler
以取樣方式剖析伺服器執行緒 CPU 熱點的效能診斷工具。
本類別以單例模式運作,啟動背景執行緒 SamplerThread,
每隔 interval 毫秒(預設 5 ms)呼叫 Thread.getAllStackTraces()
收集全執行緒堆疊快照,統計出現頻率最高的呼叫路徑。
主要操作流程:
- 以
addIncluded(prefix)限縮要納入統計的套件前綴。 - 呼叫
start()開始取樣,stop()停止。 - 以
getTopConsumers()取得SampledStacktraces結果, 或以save(Writer, minInvocations, topMethods)輸出報告。 reset()清除所有已累積的樣本。
取樣結果以 StacktraceWithCount 物件(含命中次數與堆疊)排序後回傳,
方便定位 GC 壓力、鎖競爭或 I/O 阻塞等熱點。
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddIncluded(String include) static CPUSamplervoidreset()voidvoidsetInterval(long millis) voidstart()voidstop()
-
Constructor Details
-
CPUSampler
public CPUSampler()
-
-
Method Details
-
getInstance
-
setInterval
public void setInterval(long millis) -
addIncluded
-
reset
public void reset() -
start
public void start() -
stop
public void stop() -
getTopConsumers
-
save
- Throws:
IOException
-