You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
arthas/assets/trace.html.02c3b41a.js

102 lines
52 KiB
JavaScript

import{_ as l,o as i,c as r,a as n,b as a,w as p,e as s,d as c,r as o}from"./app.391b0e4e.js";const u={},k=n("h1",{id:"trace",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#trace","aria-hidden":"true"},"#"),s(" trace")],-1),d={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-trace",target:"_blank",rel:"noopener noreferrer"},m=n("code",null,"trace",-1),b=s("\u5728\u7EBF\u6559\u7A0B"),v=c('<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u65B9\u6CD5\u5185\u90E8\u8C03\u7528\u8DEF\u5F84\uFF0C\u5E76\u8F93\u51FA\u65B9\u6CD5\u8DEF\u5F84\u4E0A\u7684\u6BCF\u4E2A\u8282\u70B9\u4E0A\u8017\u65F6</p></div><p><code>trace</code> \u547D\u4EE4\u80FD\u4E3B\u52A8\u641C\u7D22 <code>class-pattern</code>\uFF0F<code>method-pattern</code> \u5BF9\u5E94\u7684\u65B9\u6CD5\u8C03\u7528\u8DEF\u5F84\uFF0C\u6E32\u67D3\u548C\u7EDF\u8BA1\u6574\u4E2A\u8C03\u7528\u94FE\u8DEF\u4E0A\u7684\u6240\u6709\u6027\u80FD\u5F00\u9500\u548C\u8FFD\u8E2A\u8C03\u7528\u94FE\u8DEF\u3002</p><h3 id="\u53C2\u6570\u8BF4\u660E" tabindex="-1"><a class="header-anchor" href="#\u53C2\u6570\u8BF4\u660E" aria-hidden="true">#</a> \u53C2\u6570\u8BF4\u660E</h3><table><thead><tr><th style="text-align:right;">\u53C2\u6570\u540D\u79F0</th><th style="text-align:left;">\u53C2\u6570\u8BF4\u660E</th></tr></thead><tbody><tr><td style="text-align:right;"><em>class-pattern</em></td><td style="text-align:left;">\u7C7B\u540D\u8868\u8FBE\u5F0F\u5339\u914D</td></tr><tr><td style="text-align:right;"><em>method-pattern</em></td><td style="text-align:left;">\u65B9\u6CD5\u540D\u8868\u8FBE\u5F0F\u5339\u914D</td></tr><tr><td style="text-align:right;"><em>condition-express</em></td><td style="text-align:left;">\u6761\u4EF6\u8868\u8FBE\u5F0F</td></tr><tr><td style="text-align:right;">[E]</td><td style="text-align:left;">\u5F00\u542F\u6B63\u5219\u8868\u8FBE\u5F0F\u5339\u914D\uFF0C\u9ED8\u8BA4\u4E3A\u901A\u914D\u7B26\u5339\u914D</td></tr><tr><td style="text-align:right;"><code>[n:]</code></td><td style="text-align:left;">\u547D\u4EE4\u6267\u884C\u6B21\u6570</td></tr><tr><td style="text-align:right;"><code>#cost</code></td><td style="text-align:left;">\u65B9\u6CD5\u6267\u884C\u8017\u65F6</td></tr></tbody></table><p>\u8FD9\u91CC\u91CD\u70B9\u8981\u8BF4\u660E\u7684\u662F\u89C2\u5BDF\u8868\u8FBE\u5F0F\uFF0C\u89C2\u5BDF\u8868\u8FBE\u5F0F\u7684\u6784\u6210\u4E3B\u8981\u7531 \bognl \u8868\u8FBE\u5F0F\u7EC4\u6210\uFF0C\u6240\u4EE5\u4F60\u53EF\u4EE5\u8FD9\u6837\u5199<code>&quot;{params,returnObj}&quot;</code>\uFF0C\u53EA\u8981\u662F\u4E00\u4E2A\u5408\u6CD5\u7684 ognl \u8868\u8FBE\u5F0F\uFF0C\u90FD\u80FD\u88AB\u6B63\u5E38\u652F\u6301\u3002</p><p>\u89C2\u5BDF\u7684\u7EF4\u5EA6\u4E5F\u6BD4\u8F83\u591A\uFF0C\u4E3B\u8981\u4F53\u73B0\u5728\u53C2\u6570 <code>advice</code> \u7684\u6570\u636E\u7ED3\u6784\u4E0A\u3002<code>Advice</code> \u53C2\u6570\u6700\u4E3B\u8981\u662F\u5C01\u88C5\u4E86\u901A\u77E5\u8282\u70B9\u7684\u6240\u6709\u4FE1\u606F\u3002</p>',6),h=s("\u8BF7\u53C2\u8003"),g=s("\u8868\u8FBE\u5F0F\u6838\u5FC3\u53D8\u91CF"),f=s("\u4E2D\u5173\u4E8E\u8BE5\u8282\u70B9\u7684\u63CF\u8FF0\u3002"),_=s("\u7279\u6B8A\u7528\u6CD5\u8BF7\u53C2\u8003\uFF1A"),x={href:"https://github.com/alibaba/arthas/issues/71",target:"_blank",rel:"noopener noreferrer"},C=s("https://github.com/alibaba/arthas/issues/71"),M=s("OGNL \u8868\u8FBE\u5F0F\u5B98\u7F51\uFF1A"),G={href:"https://commons.apache.org/proper/commons-ognl/language-guide.html",target:"_blank",rel:"noopener noreferrer"},L=s("https://commons.apache.org/proper/commons-ognl/language-guide.html"),y=n("p",null,[s("\u5F88\u591A\u65F6\u5019\u6211\u4EEC\u53EA\u60F3\u770B\u5230\u67D0\u4E2A\u65B9\u6CD5\u7684 rt \u5927\u4E8E\u67D0\u4E2A\u65F6\u95F4\u4E4B\u540E\u7684 trace \u7ED3\u679C\uFF0C\u73B0\u5728 Arthas \u53EF\u4EE5\u6309\u7167\u65B9\u6CD5\u6267\u884C\u7684\u8017\u65F6\u6765\u8FDB\u884C\u8FC7\u6EE4\u4E86\uFF0C\u4F8B\u5982"),n("code",null,"trace *StringUtils isBlank '#cost>100'"),s("\u8868\u793A\u5F53\u6267\u884C\u65F6\u95F4\u8D85\u8FC7 100ms \u7684\u65F6\u5019\uFF0C\u624D\u4F1A\u8F93\u51FA trace \u7684\u7ED3\u679C\u3002")],-1),j=n("div",{class:"custom-container tip"},[n("p",{class:"custom-container-title"},"\u63D0\u793A"),n("p",null,[s("watch/stack/trace \u8FD9\u4E2A\u4E09\u4E2A\u547D\u4EE4\u90FD\u652F\u6301"),n("code",null,"#cost")])],-1),A=n("h3",{id:"\u6CE8\u610F\u4E8B\u9879",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u6CE8\u610F\u4E8B\u9879","aria-hidden":"true"},"#"),s(" \u6CE8\u610F\u4E8B\u9879")],-1),w=n("p",null,[n("code",null,"trace"),s(" \u80FD\u65B9\u4FBF\u7684\u5E2E\u52A9\u4F60\u5B9A\u4F4D\u548C\u53D1\u73B0\u56E0 RT \u9AD8\u800C\u5BFC\u81F4\u7684\u6027\u80FD\u95EE\u9898\u7F3A\u9677\uFF0C\u4F46\u5176\u6BCF\u6B21\u53EA\u80FD\u8DDF\u8E2A\u4E00\u7EA7\u65B9\u6CD5\u7684\u8C03\u7528\u94FE\u8DEF\u3002")],-1),F=s("\u53C2\u8003\uFF1A"),S={href:"https://github.com/alibaba/arthas/issues/597",target:"_blank",rel:"noopener noreferrer"},$=s("Trace \u547D\u4EE4\u7684\u5B9E\u73B0\u539F\u7406"),E=n("li",null,[n("p",null,"3.3.0 \u7248\u672C\u540E\uFF0C\u53EF\u4EE5\u4F7F\u7528\u52A8\u6001 Trace \u529F\u80FD\uFF0C\u4E0D\u65AD\u589E\u52A0\u65B0\u7684\u5339\u914D\u7C7B\uFF0C\u53C2\u8003\u4E0B\u9762\u7684\u793A\u4F8B\u3002")],-1),T=s("\u76EE\u524D\u4E0D\u652F\u6301 "),I=n("code",null,"trace java.lang.Thread getName",-1),B=s("\uFF0C\u53C2\u8003 issue: "),P={href:"https://github.com/alibaba/arthas/issues/1610",target:"_blank",rel:"noopener noreferrer"},J=s("#1610"),Q=s(" \uFF0C\u8003\u8651\u5230\u4E0D\u662F\u975E\u5E38\u5FC5\u8981\u573A\u666F\uFF0C\u4E14\u4FEE\u590D\u6709\u4E00\u5B9A\u96BE\u5EA6\uFF0C\u56E0\u6B64\u5F53\u524D\u6682\u4E0D\u4FEE\u590D"),R=n("h3",{id:"\u4F7F\u7528\u53C2\u8003",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u4F7F\u7528\u53C2\u8003","aria-hidden":"true"},"#"),s(" \u4F7F\u7528\u53C2\u8003")],-1),D=n("h4",{id:"\u542F\u52A8-demo",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#\u542F\u52A8-demo","aria-hidden":"true"},"#"),s(" \u542F\u52A8 Demo")],-1),N=s("\u542F\u52A8"),K=s("\u5FEB\u901F\u5165\u95E8"),V=s("\u91CC\u7684"),O=n("code",null,"math-game",-1),q=s("\u3002"),U=c(`<h4 id="trace-\u51FD\u6570" tabindex="-1"><a class="header-anchor" href="#trace-\u51FD\u6570" aria-hidden="true">#</a> trace \u51FD\u6570</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace demo.MathGame run
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class-cnt:1 , method-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">28</span> ms.
<span class="token variable"><span class="token variable">\`</span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:45:08<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@3d4eac69
<span class="token variable">\`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.617465ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token variable"><span class="token variable">\`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.078946ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
<span class="token variable">\`</span></span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:45:09<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher<span class="token variable">$AppClassLoader</span>@3d4eac69
<span class="token variable"><span class="token variable">\`</span>---<span class="token punctuation">[</span><span class="token number">1</span>.276874ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token variable">\`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.03752ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u7ED3\u679C\u91CC\u7684 <code>#24</code>\uFF0C\u8868\u793A\u5728 run \u51FD\u6570\u91CC\uFF0C\u5728\u6E90\u6587\u4EF6\u7684\u7B2C<code>24</code>\u884C\u8C03\u7528\u4E86<code>primeFactors()</code>\u51FD\u6570\u3002</p></div><h4 id="trace-\u6B21\u6570\u9650\u5236" tabindex="-1"><a class="header-anchor" href="#trace-\u6B21\u6570\u9650\u5236" aria-hidden="true">#</a> trace \u6B21\u6570\u9650\u5236</h4><p>\u5982\u679C\u65B9\u6CD5\u8C03\u7528\u7684\u6B21\u6570\u5F88\u591A\uFF0C\u90A3\u4E48\u53EF\u4EE5\u7528<code>-n</code>\u53C2\u6570\u6307\u5B9A\u6355\u6349\u7ED3\u679C\u7684\u6B21\u6570\u3002\u6BD4\u5982\u4E0B\u9762\u7684\u4F8B\u5B50\u91CC\uFF0C\u6355\u6349\u5230\u4E00\u6B21\u8C03\u7528\u5C31\u9000\u51FA\u547D\u4EE4\u3002</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace demo.MathGame run -n <span class="token number">1</span>
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class-cnt:1 , method-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">20</span> ms.
<span class="token variable"><span class="token variable">\`</span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:45:53<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@3d4eac69
<span class="token variable">\`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.549379ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.059839ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24</span>
\`---<span class="token punctuation">[</span><span class="token number">0</span>.232887ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#25</span>
Command execution <span class="token builtin class-name">times</span> exceed limit: <span class="token number">1</span>, so <span class="token builtin class-name">command</span> will exit. You can <span class="token builtin class-name">set</span> it with -n option.
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="\u5305\u542B-jdk-\u7684\u51FD\u6570" tabindex="-1"><a class="header-anchor" href="#\u5305\u542B-jdk-\u7684\u51FD\u6570" aria-hidden="true">#</a> \u5305\u542B jdk \u7684\u51FD\u6570</h4><ul><li><code>--skipJDKMethod &lt;value&gt; </code> skip jdk method trace, default value true.</li></ul><p>\u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0Ctrace \u4E0D\u4F1A\u5305\u542B jdk \u91CC\u7684\u51FD\u6570\u8C03\u7528\uFF0C\u5982\u679C\u5E0C\u671B trace jdk \u91CC\u7684\u51FD\u6570\uFF0C\u9700\u8981\u663E\u5F0F\u8BBE\u7F6E<code>--skipJDKMethod false</code>\u3002</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace --skipJDKMethod <span class="token boolean">false</span> demo.MathGame run
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class-cnt:1 , method-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">60</span> ms.
<span class="token variable"><span class="token variable">\`</span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:44:41<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@3d4eac69
<span class="token variable">\`</span></span>---<span class="token punctuation">[</span><span class="token number">1</span>.357742ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.028624ms<span class="token punctuation">]</span> java.util.Random:nextInt<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#23</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.045534ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.005372ms<span class="token punctuation">]</span> java.lang.StringBuilder:<span class="token operator">&lt;</span>init<span class="token operator">&gt;</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.012257ms<span class="token punctuation">]</span> java.lang.Integer:valueOf<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.234537ms<span class="token punctuation">]</span> java.lang.String:format<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span>min<span class="token operator">=</span><span class="token number">0</span>.004539ms,max<span class="token operator">=</span><span class="token number">0</span>.005778ms,total<span class="token operator">=</span><span class="token number">0</span>.010317ms,count<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">]</span> java.lang.StringBuilder:append<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.013777ms<span class="token punctuation">]</span> java.lang.Exception:getMessage<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.004935ms<span class="token punctuation">]</span> java.lang.StringBuilder:toString<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
<span class="token variable"><span class="token variable">\`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.06941ms<span class="token punctuation">]</span> java.io.PrintStream:println<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
<span class="token variable">\`</span></span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:44:42<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher<span class="token variable">$AppClassLoader</span>@3d4eac69
<span class="token variable"><span class="token variable">\`</span>---<span class="token punctuation">[</span><span class="token number">3</span>.030432ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.010473ms<span class="token punctuation">]</span> java.util.Random:nextInt<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#23</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.023715ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.005198ms<span class="token punctuation">]</span> java.lang.StringBuilder:<span class="token operator">&lt;</span>init<span class="token operator">&gt;</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.006405ms<span class="token punctuation">]</span> java.lang.Integer:valueOf<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.178583ms<span class="token punctuation">]</span> java.lang.String:format<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span>min<span class="token operator">=</span><span class="token number">0</span>.011636ms,max<span class="token operator">=</span><span class="token number">0</span>.838077ms,total<span class="token operator">=</span><span class="token number">0</span>.849713ms,count<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">]</span> java.lang.StringBuilder:append<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.008747ms<span class="token punctuation">]</span> java.lang.Exception:getMessage<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.019768ms<span class="token punctuation">]</span> java.lang.StringBuilder:toString<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
<span class="token variable">\`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.076457ms<span class="token punctuation">]</span> java.io.PrintStream:println<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="\u636E\u8C03\u7528\u8017\u65F6\u8FC7\u6EE4" tabindex="-1"><a class="header-anchor" href="#\u636E\u8C03\u7528\u8017\u65F6\u8FC7\u6EE4" aria-hidden="true">#</a> \u636E\u8C03\u7528\u8017\u65F6\u8FC7\u6EE4</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace demo.MathGame run <span class="token string">&#39;#cost &gt; 10&#39;</span>
Press Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class-cnt:1 , method-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">41</span> ms.
<span class="token variable"><span class="token variable">\`</span>---ts<span class="token operator">=</span><span class="token number">2018</span>-12-04 01:12:02<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@3d4eac69
<span class="token variable">\`</span></span>---<span class="token punctuation">[</span><span class="token number">12</span>.033735ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.006783ms<span class="token punctuation">]</span> java.util.Random:nextInt<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">11</span>.852594ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span>
\`---<span class="token punctuation">[</span><span class="token number">0</span>.05447ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u53EA\u4F1A\u5C55\u793A\u8017\u65F6\u5927\u4E8E 10ms \u7684\u8C03\u7528\u8DEF\u5F84\uFF0C\u6709\u52A9\u4E8E\u5728\u6392\u67E5\u95EE\u9898\u7684\u65F6\u5019\uFF0C\u53EA\u5173\u6CE8\u5F02\u5E38\u60C5\u51B5</p></div><ul><li>\u662F\u4E0D\u662F\u5F88\u773C\u719F\uFF0C\u6CA1\u9519\uFF0C\u5728 JProfiler \u7B49\u6536\u8D39\u8F6F\u4EF6\u4E2D\u4F60\u66FE\u7ECF\u89C1\u8BC6\u7C7B\u4F3C\u7684\u529F\u80FD\uFF0C\u8FD9\u91CC\u4F60\u5C06\u53EF\u4EE5\u901A\u8FC7\u547D\u4EE4\u5C31\u80FD\u6253\u5370\u51FA\u6307\u5B9A\u8C03\u7528\u8DEF\u5F84\u3002 \u53CB\u60C5\u63D0\u9192\u4E0B\uFF0C<code>trace</code> \u5728\u6267\u884C\u7684\u8FC7\u7A0B\u4E2D\u672C\u8EAB\u662F\u4F1A\u6709\u4E00\u5B9A\u7684\u6027\u80FD\u5F00\u9500\uFF0C\u5728\u7EDF\u8BA1\u7684\u62A5\u544A\u4E2D\u5E76\u672A\u50CF JProfiler \u4E00\u6837\u9884\u5148\u51CF\u53BB\u5176\u81EA\u8EAB\u7684\u7EDF\u8BA1\u5F00\u9500\u3002\u6240\u4EE5\u8FD9\u7EDF\u8BA1\u51FA\u6765\u6709\u4E9B\u8BB8\u7684\u4E0D\u51C6\uFF0C\u6E32\u67D3\u8DEF\u5F84\u4E0A\u8C03\u7528\u7684\u7C7B\u3001\u65B9\u6CD5\u8D8A\u591A\uFF0C\u6027\u80FD\u504F\u5DEE\u8D8A\u5927\u3002\u4F46\u8FD8\u662F\u80FD\u8BA9\u4F60\u770B\u6E05\u4E00\u4E9B\u4E8B\u60C5\u7684\u3002</li><li>[12.033735ms] \u7684\u542B\u4E49\uFF0C<code>12.033735</code> \u7684\u542B\u4E49\u662F\uFF1A\u5F53\u524D\u8282\u70B9\u5728\u5F53\u524D\u6B65\u9AA4\u7684\u8017\u65F6\uFF0C\u5355\u4F4D\u4E3A\u6BEB\u79D2</li><li>[0,0,0ms,11]xxx:yyy() [throws Exception]\uFF0C\u5BF9\u8BE5\u65B9\u6CD5\u4E2D\u76F8\u540C\u7684\u65B9\u6CD5\u8C03\u7528\u8FDB\u884C\u4E86\u5408\u5E76\uFF0C<code>0,0,0ms,11</code> \u8868\u793A\u65B9\u6CD5\u8C03\u7528\u8017\u65F6\uFF0C<code>min,max,total,count</code>\uFF1B<code>throws Exception</code> \u8868\u660E\u8BE5\u65B9\u6CD5\u8C03\u7528\u4E2D\u5B58\u5728\u5F02\u5E38\u8FD4\u56DE</li><li>\u8FD9\u91CC\u5B58\u5728\u4E00\u4E2A\u7EDF\u8BA1\u4E0D\u51C6\u786E\u7684\u95EE\u9898\uFF0C\u5C31\u662F\u6240\u6709\u65B9\u6CD5\u8017\u65F6\u52A0\u8D77\u6765\u53EF\u80FD\u4F1A\u5C0F\u4E8E\u8BE5\u76D1\u6D4B\u65B9\u6CD5\u7684\u603B\u8017\u65F6\uFF0C\u8FD9\u4E2A\u662F\u7531\u4E8E Arthas \u672C\u8EAB\u7684\u903B\u8F91\u4F1A\u6709\u4E00\u5B9A\u7684\u8017\u65F6</li></ul><h4 id="trace-\u591A\u4E2A\u7C7B\u6216\u8005\u591A\u4E2A\u51FD\u6570" tabindex="-1"><a class="header-anchor" href="#trace-\u591A\u4E2A\u7C7B\u6216\u8005\u591A\u4E2A\u51FD\u6570" aria-hidden="true">#</a> trace \u591A\u4E2A\u7C7B\u6216\u8005\u591A\u4E2A\u51FD\u6570</h4><p>trace \u547D\u4EE4\u53EA\u4F1A trace \u5339\u914D\u5230\u7684\u51FD\u6570\u91CC\u7684\u5B50\u8C03\u7528\uFF0C\u5E76\u4E0D\u4F1A\u5411\u4E0B trace \u591A\u5C42\u3002\u56E0\u4E3A trace \u662F\u4EE3\u4EF7\u6BD4\u8F83\u8D35\u7684\uFF0C\u591A\u5C42 trace \u53EF\u80FD\u4F1A\u5BFC\u81F4\u6700\u7EC8\u8981 trace \u7684\u7C7B\u548C\u51FD\u6570\u975E\u5E38\u591A\u3002</p><p>\u53EF\u4EE5\u7528\u6B63\u5219\u8868\u5339\u914D\u8DEF\u5F84\u4E0A\u7684\u591A\u4E2A\u7C7B\u548C\u51FD\u6570\uFF0C\u4E00\u5B9A\u7A0B\u5EA6\u4E0A\u8FBE\u5230\u591A\u5C42 trace \u7684\u6548\u679C\u3002</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>trace -E com.test.ClassA<span class="token operator">|</span>org.test.ClassB method1<span class="token operator">|</span>method2<span class="token operator">|</span>method3
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h4 id="\u6392\u9664\u6389\u6307\u5B9A\u7684\u7C7B" tabindex="-1"><a class="header-anchor" href="#\u6392\u9664\u6389\u6307\u5B9A\u7684\u7C7B" aria-hidden="true">#</a> \u6392\u9664\u6389\u6307\u5B9A\u7684\u7C7B</h4><p>\u4F7F\u7528 <code>--exclude-class-pattern</code> \u53C2\u6570\u53EF\u4EE5\u6392\u9664\u6389\u6307\u5B9A\u7684\u7C7B\uFF0C\u6BD4\u5982\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>trace javax.servlet.Filter * --exclude-class-pattern com.demo.TestFilter
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="\u52A8\u6001-trace" tabindex="-1"><a class="header-anchor" href="#\u52A8\u6001-trace" aria-hidden="true">#</a> \u52A8\u6001 trace</h3><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>3.3.0 \u7248\u672C\u540E\u652F\u6301\u3002</p></div><p>\u6253\u5F00\u7EC8\u7AEF 1\uFF0Ctrace \u4E0A\u9762 demo \u91CC\u7684<code>run</code>\u51FD\u6570\uFF0C\u53EF\u4EE5\u770B\u5230\u6253\u5370\u51FA <code>listenerId: 1</code>\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@59161<span class="token punctuation">]</span>$ trace demo.MathGame run
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">112</span> ms, listenerId: <span class="token number">1</span>
<span class="token variable"><span class="token variable">\`</span>---ts<span class="token operator">=</span><span class="token number">2020</span>-07-09 <span class="token number">16</span>:48:11<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@3d4eac69
<span class="token variable">\`</span></span>---<span class="token punctuation">[</span><span class="token number">1</span>.389634ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token variable"><span class="token variable">\`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.123934ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
<span class="token variable">\`</span></span>---ts<span class="token operator">=</span><span class="token number">2020</span>-07-09 <span class="token number">16</span>:48:12<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher<span class="token variable">$AppClassLoader</span>@3d4eac69
<span class="token variable"><span class="token variable">\`</span>---<span class="token punctuation">[</span><span class="token number">3</span>.716391ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">3</span>.182813ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24</span>
<span class="token variable">\`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.167786ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#25</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>\u73B0\u5728\u60F3\u8981\u6DF1\u5165\u5B50\u51FD\u6570<code>primeFactors</code>\uFF0C\u53EF\u4EE5\u6253\u5F00\u4E00\u4E2A\u65B0\u7EC8\u7AEF 2\uFF0C\u4F7F\u7528<code>telnet localhost 3658</code>\u8FDE\u63A5\u4E0A arthas\uFF0C\u518D trace <code>primeFactors</code>\u65F6\uFF0C\u6307\u5B9A<code>listenerId</code>\u3002</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@59161<span class="token punctuation">]</span>$ trace demo.MathGame primeFactors --listenerId <span class="token number">1</span>
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">34</span> ms, listenerId: <span class="token number">1</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>\u8FD9\u65F6\u7EC8\u7AEF 2 \u6253\u5370\u7684\u7ED3\u679C\uFF0C\u8BF4\u660E\u5DF2\u7ECF\u589E\u5F3A\u4E86\u4E00\u4E2A\u51FD\u6570\uFF1A<code>Affect(class count: 1 , method count: 1)</code>\uFF0C\u4F46\u4E0D\u518D\u6253\u5370\u66F4\u591A\u7684\u7ED3\u679C\u3002</p><p>\u518D\u67E5\u770B\u7EC8\u7AEF 1\uFF0C\u53EF\u4EE5\u53D1\u73B0 trace \u7684\u7ED3\u679C\u589E\u52A0\u4E86\u4E00\u5C42\uFF0C\u6253\u5370\u4E86<code>primeFactors</code>\u51FD\u6570\u91CC\u7684\u5185\u5BB9\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token variable"><span class="token variable">\`</span>---ts<span class="token operator">=</span><span class="token number">2020</span>-07-09 <span class="token number">16</span>:49:29<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@3d4eac69
<span class="token variable">\`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.492551ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token variable"><span class="token variable">\`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.113929ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
<span class="token variable">\`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.061462ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token variable"><span class="token variable">\`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.001018ms<span class="token punctuation">]</span> throw:java.lang.IllegalArgumentException<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#46</span>
<span class="token variable">\`</span></span>---ts<span class="token operator">=</span><span class="token number">2020</span>-07-09 <span class="token number">16</span>:49:30<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher<span class="token variable">$AppClassLoader</span>@3d4eac69
<span class="token variable"><span class="token variable">\`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.409446ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.232606ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24</span>
<span class="token operator">|</span> <span class="token variable">\`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.1294ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span>
\`---<span class="token punctuation">[</span><span class="token number">0</span>.084025ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#25</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>\u901A\u8FC7\u6307\u5B9A<code>listenerId</code>\u7684\u65B9\u5F0F\u52A8\u6001 trace\uFF0C\u53EF\u4EE5\u4E0D\u65AD\u6DF1\u5165\u3002\u53E6\u5916 <code>watch</code>/<code>tt</code>/<code>monitor</code>\u7B49\u547D\u4EE4\u4E5F\u652F\u6301\u7C7B\u4F3C\u7684\u529F\u80FD\u3002</p><h3 id="trace-\u7ED3\u679C\u65F6\u95F4\u4E0D\u51C6\u786E\u95EE\u9898" tabindex="-1"><a class="header-anchor" href="#trace-\u7ED3\u679C\u65F6\u95F4\u4E0D\u51C6\u786E\u95EE\u9898" aria-hidden="true">#</a> trace \u7ED3\u679C\u65F6\u95F4\u4E0D\u51C6\u786E\u95EE\u9898</h3><p>\u6BD4\u5982\u4E0B\u9762\u7684\u7ED3\u679C\u91CC\uFF1A<code>0.705196 &gt; (0.152743 + 0.145825)</code></p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace demo.MathGame run -n <span class="token number">1</span>
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">66</span> ms, listenerId: <span class="token number">1</span>
<span class="token variable"><span class="token variable">\`</span>---ts<span class="token operator">=</span><span class="token number">2021</span>-02-08 <span class="token number">11</span>:27:36<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@232204a1
<span class="token variable">\`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.705196ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.152743ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24</span>
\`---<span class="token punctuation">[</span><span class="token number">0</span>.145825ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#25</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>\u90A3\u4E48\u5176\u5B83\u7684\u65F6\u95F4\u6D88\u8017\u5728\u54EA\u4E9B\u5730\u65B9\uFF1F</p><ol><li><p>\u6CA1\u6709\u88AB trace \u5230\u7684\u51FD\u6570\u3002\u6BD4\u5982<code>java.*</code> \u4E0B\u7684\u51FD\u6570\u8C03\u7528\u9ED8\u8BA4\u4F1A\u5FFD\u7565\u6389\u3002\u901A\u8FC7\u589E\u52A0<code>--skipJDKMethod false</code>\u53C2\u6570\u53EF\u4EE5\u6253\u5370\u51FA\u6765\u3002</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace demo.MathGame run --skipJDKMethod <span class="token boolean">false</span>
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">35</span> ms, listenerId: <span class="token number">2</span>
<span class="token variable"><span class="token variable">\`</span>---ts<span class="token operator">=</span><span class="token number">2021</span>-02-08 <span class="token number">11</span>:27:48<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@232204a1
<span class="token variable">\`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.810591ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.034568ms<span class="token punctuation">]</span> java.util.Random:nextInt<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#23</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.119367ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.017407ms<span class="token punctuation">]</span> java.lang.StringBuilder:<span class="token operator">&lt;</span>init<span class="token operator">&gt;</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.127922ms<span class="token punctuation">]</span> java.lang.String:format<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
+---<span class="token punctuation">[</span>min<span class="token operator">=</span><span class="token number">0</span>.01419ms,max<span class="token operator">=</span><span class="token number">0</span>.020221ms,total<span class="token operator">=</span><span class="token number">0</span>.034411ms,count<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">]</span> java.lang.StringBuilder:append<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.021911ms<span class="token punctuation">]</span> java.lang.Exception:getMessage<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.015643ms<span class="token punctuation">]</span> java.lang.StringBuilder:toString<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
\`---<span class="token punctuation">[</span><span class="token number">0</span>.086622ms<span class="token punctuation">]</span> java.io.PrintStream:println<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>\u975E\u51FD\u6570\u8C03\u7528\u7684\u6307\u4EE4\u6D88\u8017\u3002\u6BD4\u5982 <code>i++</code>, <code>getfield</code>\u7B49\u6307\u4EE4\u3002</p></li><li><p>\u5728\u4EE3\u7801\u6267\u884C\u8FC7\u7A0B\u4E2D\uFF0CJVM \u53EF\u80FD\u51FA\u73B0\u505C\u987F\uFF0C\u6BD4\u5982 GC\uFF0C\u8FDB\u5165\u540C\u6B65\u5757\u7B49\u3002</p></li></ol><h4 id="\u4F7F\u7528-v-\u53C2\u6570\u6253\u5370\u66F4\u591A\u4FE1\u606F" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528-v-\u53C2\u6570\u6253\u5370\u66F4\u591A\u4FE1\u606F" aria-hidden="true">#</a> \u4F7F\u7528 -v \u53C2\u6570\u6253\u5370\u66F4\u591A\u4FE1\u606F</h4><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>watch/trace/monitor/stack/tt \u547D\u4EE4\u90FD\u652F\u6301 <code>-v</code> \u53C2\u6570</p></div><p>\u5F53\u547D\u4EE4\u6267\u884C\u4E4B\u540E\uFF0C\u6CA1\u6709\u8F93\u51FA\u7ED3\u679C\u3002\u6709\u4E24\u79CD\u53EF\u80FD\uFF1A</p><ol><li>\u5339\u914D\u5230\u7684\u51FD\u6570\u6CA1\u6709\u88AB\u6267\u884C</li><li>\u6761\u4EF6\u8868\u8FBE\u5F0F\u7ED3\u679C\u662F false</li></ol><p>\u4F46\u7528\u6237\u533A\u5206\u4E0D\u51FA\u662F\u54EA\u79CD\u60C5\u51B5\u3002</p><p>\u4F7F\u7528 <code>-v</code>\u9009\u9879\uFF0C\u5219\u4F1A\u6253\u5370<code>Condition express</code>\u7684\u5177\u4F53\u503C\u548C\u6267\u884C\u7ED3\u679C\uFF0C\u65B9\u4FBF\u786E\u8BA4\u3002</p>`,42);function Y(z,H){const e=o("ExternalLinkIcon"),t=o("RouterLink");return i(),r("div",null,[k,n("p",null,[n("a",d,[m,b,a(e)])]),v,n("p",null,[h,a(t,{to:"/doc/advice-class.html"},{default:p(()=>[g]),_:1}),f]),n("ul",null,[n("li",null,[_,n("a",x,[C,a(e)])]),n("li",null,[M,n("a",G,[L,a(e)])])]),y,j,A,n("ul",null,[n("li",null,[w,n("p",null,[F,n("a",S,[$,a(e)])])]),E,n("li",null,[n("p",null,[T,I,B,n("a",P,[J,a(e)]),Q])])]),R,D,n("p",null,[N,a(t,{to:"/doc/quick-start.html"},{default:p(()=>[K]),_:1}),V,O,q]),U])}var X=l(u,[["render",Y],["__file","trace.html.vue"]]);export{X as default};