mirror of https://github.com/alibaba/arthas.git
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.
166 lines
42 KiB
JavaScript
166 lines
42 KiB
JavaScript
import{_ as l,o as i,c as u,a as s,b as a,w as t,d as e,e as n,r as o}from"./app.391b0e4e.js";const r={},k=e(`<h1 id="\u5FEB\u901F\u5165\u95E8" tabindex="-1"><a class="header-anchor" href="#\u5FEB\u901F\u5165\u95E8" aria-hidden="true">#</a> \u5FEB\u901F\u5165\u95E8</h1><h2 id="_1-\u542F\u52A8-math-game" tabindex="-1"><a class="header-anchor" href="#_1-\u542F\u52A8-math-game" aria-hidden="true">#</a> 1. \u542F\u52A8 math-game</h2><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">curl</span> -O https://arthas.aliyun.com/math-game.jar
|
|
java -jar math-game.jar
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p><code>math-game</code>\u662F\u4E00\u4E2A\u7B80\u5355\u7684\u7A0B\u5E8F\uFF0C\u6BCF\u9694\u4E00\u79D2\u751F\u6210\u4E00\u4E2A\u968F\u673A\u6570\uFF0C\u518D\u6267\u884C\u8D28\u56E0\u6570\u5206\u89E3\uFF0C\u5E76\u6253\u5370\u51FA\u5206\u89E3\u7ED3\u679C\u3002</p>`,4),d=s("code",null,"math-game",-1),m=n("\u6E90\u4EE3\u7801\uFF1A"),b={href:"https://github.com/alibaba/arthas/blob/master/math-game/src/main/java/demo/MathGame.java",target:"_blank",rel:"noopener noreferrer"},v=n("\u67E5\u770B"),h=e(`<h2 id="_2-\u542F\u52A8-arthas" tabindex="-1"><a class="header-anchor" href="#_2-\u542F\u52A8-arthas" aria-hidden="true">#</a> 2. \u542F\u52A8 arthas</h2><p>\u5728\u547D\u4EE4\u884C\u4E0B\u9762\u6267\u884C\uFF08\u4F7F\u7528\u548C\u76EE\u6807\u8FDB\u7A0B\u4E00\u81F4\u7684\u7528\u6237\u542F\u52A8\uFF0C\u5426\u5219\u53EF\u80FD attach \u5931\u8D25\uFF09\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">curl</span> -O https://arthas.aliyun.com/arthas-boot.jar
|
|
java -jar arthas-boot.jar
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><ul><li>\u6267\u884C\u8BE5\u7A0B\u5E8F\u7684\u7528\u6237\u9700\u8981\u548C\u76EE\u6807\u8FDB\u7A0B\u5177\u6709\u76F8\u540C\u7684\u6743\u9650\u3002\u6BD4\u5982\u4EE5<code>admin</code>\u7528\u6237\u6765\u6267\u884C\uFF1A<code>sudo su admin && java -jar arthas-boot.jar</code> \u6216 <code>sudo -u admin -EH java -jar arthas-boot.jar</code>\u3002</li><li>\u5982\u679C attach \u4E0D\u4E0A\u76EE\u6807\u8FDB\u7A0B\uFF0C\u53EF\u4EE5\u67E5\u770B<code>~/logs/arthas/</code> \u76EE\u5F55\u4E0B\u7684\u65E5\u5FD7\u3002</li><li>\u5982\u679C\u4E0B\u8F7D\u901F\u5EA6\u6BD4\u8F83\u6162\uFF0C\u53EF\u4EE5\u4F7F\u7528 aliyun \u7684\u955C\u50CF\uFF1A<code>java -jar arthas-boot.jar --repo-mirror aliyun --use-http</code></li><li><code>java -jar arthas-boot.jar -h</code> \u6253\u5370\u66F4\u591A\u53C2\u6570\u4FE1\u606F\u3002</li></ul><p>\u9009\u62E9\u5E94\u7528 java \u8FDB\u7A0B\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ $ java -jar arthas-boot.jar
|
|
* <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>: <span class="token number">35542</span>
|
|
<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>: <span class="token number">71560</span> math-game.jar
|
|
</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><code>math-game</code>\u8FDB\u7A0B\u662F\u7B2C 2 \u4E2A\uFF0C\u5219\u8F93\u5165 2\uFF0C\u518D\u8F93\u5165<code>\u56DE\u8F66/enter</code>\u3002Arthas \u4F1A attach \u5230\u76EE\u6807\u8FDB\u7A0B\u4E0A\uFF0C\u5E76\u8F93\u51FA\u65E5\u5FD7\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Try to attach process <span class="token number">71560</span>
|
|
<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Attach process <span class="token number">71560</span> success.
|
|
<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> arthas-client connect <span class="token number">127.0</span>.0.1 <span class="token number">3658</span>
|
|
,---. ,------. ,--------.,--. ,--. ,---. ,---.
|
|
/ O <span class="token punctuation">\\</span> <span class="token operator">|</span> .--. <span class="token string">''</span>--. .--<span class="token string">'| '</span>--<span class="token string">' | / O \\ '</span> .-<span class="token string">'
|
|
| .-. || '</span>--<span class="token string">'.'</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> .--. <span class="token operator">||</span> .-. <span class="token operator">|</span><span class="token variable"><span class="token variable">\`</span><span class="token builtin class-name">.</span> <span class="token variable">\`</span></span>-.
|
|
<span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">||</span> <span class="token operator">|</span><span class="token punctuation">\\</span> <span class="token punctuation">\\</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">||</span> <span class="token operator">|</span> <span class="token operator">|</span> <span class="token operator">|</span>.-<span class="token string">' |
|
|
\`--'</span> <span class="token variable"><span class="token variable">\`</span>--'<span class="token variable">\`</span></span>--<span class="token string">' '</span>--<span class="token string">' \`--'</span> <span class="token variable"><span class="token variable">\`</span>--' <span class="token variable">\`</span></span>--<span class="token string">'\`--'</span> <span class="token variable"><span class="token variable">\`</span>--'<span class="token variable">\`</span></span>-----'
|
|
|
|
|
|
wiki: https://arthas.aliyun.com/doc
|
|
version: <span class="token number">3.0</span>.5.20181127201536
|
|
pid: <span class="token number">71560</span>
|
|
time: <span class="token number">2018</span>-11-28 <span class="token number">19</span>:16:24
|
|
|
|
$
|
|
</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></div><h2 id="_3-\u67E5\u770B-dashboard" tabindex="-1"><a class="header-anchor" href="#_3-\u67E5\u770B-dashboard" aria-hidden="true">#</a> 3. \u67E5\u770B dashboard</h2>`,9),g=n("\u8F93\u5165"),_=n("dashboard"),f=n("\uFF0C\u6309"),y=s("code",null,"\u56DE\u8F66/enter",-1),w=n("\uFF0C\u4F1A\u5C55\u793A\u5F53\u524D\u8FDB\u7A0B\u7684\u4FE1\u606F\uFF0C\u6309"),I=s("code",null,"ctrl+c",-1),j=n("\u53EF\u4EE5\u4E2D\u65AD\u6267\u884C\u3002"),M=e(`<div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ dashboard
|
|
ID NAME GROUP PRIORI STATE %CPU TIME INTERRU DAEMON
|
|
<span class="token number">17</span> pool-2-thread-1 system <span class="token number">5</span> WAITIN <span class="token number">67</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">false</span>
|
|
<span class="token number">27</span> Timer-for-arthas-dashb system <span class="token number">10</span> RUNNAB <span class="token number">32</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
|
|
<span class="token number">11</span> AsyncAppender-Worker-a system <span class="token number">9</span> WAITIN <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
|
|
<span class="token number">9</span> Attach Listener system <span class="token number">9</span> RUNNAB <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
|
|
<span class="token number">3</span> Finalizer system <span class="token number">8</span> WAITIN <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
|
|
<span class="token number">2</span> Reference Handler system <span class="token number">10</span> WAITIN <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
|
|
<span class="token number">4</span> Signal Dispatcher system <span class="token number">9</span> RUNNAB <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
|
|
<span class="token number">26</span> as-command-execute-dae system <span class="token number">10</span> TIMED_ <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
|
|
<span class="token number">13</span> job-timeout system <span class="token number">9</span> TIMED_ <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">true</span>
|
|
<span class="token number">1</span> main main <span class="token number">5</span> TIMED_ <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">false</span>
|
|
<span class="token number">14</span> nioEventLoopGroup-2-1 system <span class="token number">10</span> RUNNAB <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">false</span>
|
|
<span class="token number">18</span> nioEventLoopGroup-2-2 system <span class="token number">10</span> RUNNAB <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">false</span>
|
|
<span class="token number">23</span> nioEventLoopGroup-2-3 system <span class="token number">10</span> RUNNAB <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">false</span>
|
|
<span class="token number">15</span> nioEventLoopGroup-3-1 system <span class="token number">10</span> RUNNAB <span class="token number">0</span> <span class="token number">0</span>:0 <span class="token boolean">false</span> <span class="token boolean">false</span>
|
|
Memory used total max usage GC
|
|
heap 32M 155M 1820M <span class="token number">1.77</span>% gc.ps_scavenge.count <span class="token number">4</span>
|
|
ps_eden_space 14M 65M 672M <span class="token number">2.21</span>% gc.ps_scavenge.time<span class="token punctuation">(</span>m <span class="token number">166</span>
|
|
ps_survivor_space 4M 5M 5M s<span class="token punctuation">)</span>
|
|
ps_old_gen 12M 85M 1365M <span class="token number">0.91</span>% gc.ps_marksweep.count <span class="token number">0</span>
|
|
nonheap 20M 23M -1 gc.ps_marksweep.time<span class="token punctuation">(</span> <span class="token number">0</span>
|
|
code_cache 3M 5M 240M <span class="token number">1.32</span>% ms<span class="token punctuation">)</span>
|
|
Runtime
|
|
os.name Mac OS X
|
|
os.version <span class="token number">10.13</span>.4
|
|
java.version <span class="token number">1.8</span>.0_162
|
|
java.home /Library/Java/JavaVir
|
|
tualMachines/jdk1.8.0
|
|
_162.jdk/Contents/Hom
|
|
e/jre
|
|
</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 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><h2 id="_4-\u901A\u8FC7-thread-\u547D\u4EE4\u6765\u83B7\u53D6\u5230math-game\u8FDB\u7A0B\u7684-main-class" tabindex="-1"><a class="header-anchor" href="#_4-\u901A\u8FC7-thread-\u547D\u4EE4\u6765\u83B7\u53D6\u5230math-game\u8FDB\u7A0B\u7684-main-class" aria-hidden="true">#</a> 4. \u901A\u8FC7 thread \u547D\u4EE4\u6765\u83B7\u53D6\u5230<code>math-game</code>\u8FDB\u7A0B\u7684 Main Class</h2><p><code>thread 1</code>\u4F1A\u6253\u5370\u7EBF\u7A0B ID 1 \u7684\u6808\uFF0C\u901A\u5E38\u662F main \u51FD\u6570\u7684\u7EBF\u7A0B\u3002</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ thread <span class="token number">1</span> <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">'main('</span>
|
|
at demo.MathGame.main<span class="token punctuation">(</span>MathGame.java:17<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></div><h2 id="_5-\u901A\u8FC7-jad-\u6765\u53CD\u7F16\u8BD1-main-class" tabindex="-1"><a class="header-anchor" href="#_5-\u901A\u8FC7-jad-\u6765\u53CD\u7F16\u8BD1-main-class" aria-hidden="true">#</a> 5. \u901A\u8FC7 jad \u6765\u53CD\u7F16\u8BD1 Main Class</h2><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code>$ jad <span class="token class-name"><span class="token namespace">demo<span class="token punctuation">.</span></span>MathGame</span>
|
|
|
|
<span class="token class-name">ClassLoader</span><span class="token operator">:</span>
|
|
<span class="token operator">+</span><span class="token operator">-</span><span class="token class-name"><span class="token namespace">sun<span class="token punctuation">.</span>misc<span class="token punctuation">.</span></span>Launcher</span>$<span class="token class-name">AppClassLoader</span><span class="token annotation punctuation">@3d4eac69</span>
|
|
<span class="token operator">+</span><span class="token operator">-</span><span class="token class-name"><span class="token namespace">sun<span class="token punctuation">.</span>misc<span class="token punctuation">.</span></span>Launcher</span>$<span class="token class-name">ExtClassLoader</span><span class="token annotation punctuation">@66350f69</span>
|
|
|
|
<span class="token class-name">Location</span><span class="token operator">:</span>
|
|
<span class="token operator">/</span>tmp<span class="token operator">/</span>math<span class="token operator">-</span>game<span class="token punctuation">.</span>jar
|
|
|
|
<span class="token comment">/*
|
|
* Decompiled with CFR 0_132.
|
|
*/</span>
|
|
<span class="token keyword">package</span> <span class="token namespace">demo</span><span class="token punctuation">;</span>
|
|
|
|
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>io<span class="token punctuation">.</span></span><span class="token class-name">PrintStream</span></span><span class="token punctuation">;</span>
|
|
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">ArrayList</span></span><span class="token punctuation">;</span>
|
|
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">Iterator</span></span><span class="token punctuation">;</span>
|
|
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">List</span></span><span class="token punctuation">;</span>
|
|
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">Random</span></span><span class="token punctuation">;</span>
|
|
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>concurrent<span class="token punctuation">.</span></span><span class="token class-name">TimeUnit</span></span><span class="token punctuation">;</span>
|
|
|
|
<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">MathGame</span> <span class="token punctuation">{</span>
|
|
<span class="token keyword">private</span> <span class="token keyword">static</span> <span class="token class-name">Random</span> random <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Random</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token keyword">private</span> <span class="token keyword">int</span> illegalArgumentCount <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
|
|
|
|
<span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span> <span class="token keyword">throws</span> <span class="token class-name">InterruptedException</span> <span class="token punctuation">{</span>
|
|
<span class="token class-name">MathGame</span> game <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MathGame</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token keyword">do</span> <span class="token punctuation">{</span>
|
|
game<span class="token punctuation">.</span><span class="token function">run</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token class-name">TimeUnit</span><span class="token punctuation">.</span>SECONDS<span class="token punctuation">.</span><span class="token function">sleep</span><span class="token punctuation">(</span><span class="token number">1L</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token punctuation">}</span> <span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token punctuation">}</span>
|
|
|
|
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">run</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">throws</span> <span class="token class-name">InterruptedException</span> <span class="token punctuation">{</span>
|
|
<span class="token keyword">try</span> <span class="token punctuation">{</span>
|
|
<span class="token keyword">int</span> number <span class="token operator">=</span> random<span class="token punctuation">.</span><span class="token function">nextInt</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">></span></span> primeFactors <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">primeFactors</span><span class="token punctuation">(</span>number<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token class-name">MathGame</span><span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span>number<span class="token punctuation">,</span> primeFactors<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token punctuation">}</span>
|
|
<span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">Exception</span> e<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">.</span><span class="token function">format</span><span class="token punctuation">(</span><span class="token string">"illegalArgumentCount:%3d, "</span><span class="token punctuation">,</span> <span class="token keyword">this</span><span class="token punctuation">.</span>illegalArgumentCount<span class="token punctuation">)</span> <span class="token operator">+</span> e<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token punctuation">}</span>
|
|
<span class="token punctuation">}</span>
|
|
|
|
<span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">print</span><span class="token punctuation">(</span><span class="token keyword">int</span> number<span class="token punctuation">,</span> <span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">></span></span> primeFactors<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
<span class="token class-name">StringBuffer</span> sb <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">StringBuffer</span><span class="token punctuation">(</span><span class="token string">""</span> <span class="token operator">+</span> number <span class="token operator">+</span> <span class="token string">"="</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token class-name">Iterator</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">></span></span> iterator <span class="token operator">=</span> primeFactors<span class="token punctuation">.</span><span class="token function">iterator</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token keyword">while</span> <span class="token punctuation">(</span>iterator<span class="token punctuation">.</span><span class="token function">hasNext</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
<span class="token keyword">int</span> factor <span class="token operator">=</span> iterator<span class="token punctuation">.</span><span class="token function">next</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
sb<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span>factor<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token char">'*'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token punctuation">}</span>
|
|
<span class="token keyword">if</span> <span class="token punctuation">(</span>sb<span class="token punctuation">.</span><span class="token function">charAt</span><span class="token punctuation">(</span>sb<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token char">'*'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
sb<span class="token punctuation">.</span><span class="token function">deleteCharAt</span><span class="token punctuation">(</span>sb<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token punctuation">}</span>
|
|
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>sb<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token punctuation">}</span>
|
|
|
|
<span class="token keyword">public</span> <span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">></span></span> <span class="token function">primeFactors</span><span class="token punctuation">(</span><span class="token keyword">int</span> number<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
<span class="token keyword">if</span> <span class="token punctuation">(</span>number <span class="token operator"><</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
<span class="token operator">++</span><span class="token keyword">this</span><span class="token punctuation">.</span>illegalArgumentCount<span class="token punctuation">;</span>
|
|
<span class="token keyword">throw</span> <span class="token keyword">new</span> <span class="token class-name">IllegalArgumentException</span><span class="token punctuation">(</span><span class="token string">"number is: "</span> <span class="token operator">+</span> number <span class="token operator">+</span> <span class="token string">", need >= 2"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token punctuation">}</span>
|
|
<span class="token class-name">ArrayList</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">></span></span> result <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">Integer</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
<span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">;</span>
|
|
<span class="token keyword">while</span> <span class="token punctuation">(</span>i <span class="token operator"><=</span> number<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
<span class="token keyword">if</span> <span class="token punctuation">(</span>number <span class="token operator">%</span> i <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
result<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
number <span class="token operator">/=</span> i<span class="token punctuation">;</span>
|
|
i <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">;</span>
|
|
<span class="token keyword">continue</span><span class="token punctuation">;</span>
|
|
<span class="token punctuation">}</span>
|
|
<span class="token operator">++</span>i<span class="token punctuation">;</span>
|
|
<span class="token punctuation">}</span>
|
|
<span class="token keyword">return</span> result<span class="token punctuation">;</span>
|
|
<span class="token punctuation">}</span>
|
|
<span class="token punctuation">}</span>
|
|
|
|
<span class="token class-name">Affect</span><span class="token punctuation">(</span>row<span class="token operator">-</span>cnt<span class="token operator">:</span><span class="token number">1</span><span class="token punctuation">)</span> cost in <span class="token number">970</span> ms<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 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 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 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><h2 id="_6-watch" tabindex="-1"><a class="header-anchor" href="#_6-watch" aria-hidden="true">#</a> 6. watch</h2>`,7),A=n("\u901A\u8FC7"),x=n("watch"),N=n("\u547D\u4EE4\u6765\u67E5\u770B"),L=s("code",null,"demo.MathGame#primeFactors",-1),E=n("\u51FD\u6570\u7684\u8FD4\u56DE\u503C\uFF1A"),R=e(`<div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">watch</span> demo.MathGame primeFactors returnObj
|
|
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">107</span> ms.
|
|
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-11-28 <span class="token number">19</span>:22:30<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">1</span>.715367ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>null
|
|
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-11-28 <span class="token number">19</span>:22:31<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.185203ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>null
|
|
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-11-28 <span class="token number">19</span>:22:32<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">19</span>.012416ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
|
|
@Integer<span class="token punctuation">[</span><span class="token number">5</span><span class="token punctuation">]</span>,
|
|
@Integer<span class="token punctuation">[</span><span class="token number">47</span><span class="token punctuation">]</span>,
|
|
@Integer<span class="token punctuation">[</span><span class="token number">2675531</span><span class="token punctuation">]</span>,
|
|
<span class="token punctuation">]</span>
|
|
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-11-28 <span class="token number">19</span>:22:33<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">0</span>.311395ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
|
|
@Integer<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>,
|
|
@Integer<span class="token punctuation">[</span><span class="token number">5</span><span class="token punctuation">]</span>,
|
|
@Integer<span class="token punctuation">[</span><span class="token number">317</span><span class="token punctuation">]</span>,
|
|
@Integer<span class="token punctuation">[</span><span class="token number">503</span><span class="token punctuation">]</span>,
|
|
@Integer<span class="token punctuation">[</span><span class="token number">887</span><span class="token punctuation">]</span>,
|
|
<span class="token punctuation">]</span>
|
|
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-11-28 <span class="token number">19</span>:22:34<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">10</span>.136007ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
|
|
@Integer<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>,
|
|
@Integer<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>,
|
|
@Integer<span class="token punctuation">[</span><span class="token number">3</span><span class="token punctuation">]</span>,
|
|
@Integer<span class="token punctuation">[</span><span class="token number">3</span><span class="token punctuation">]</span>,
|
|
@Integer<span class="token punctuation">[</span><span class="token number">31</span><span class="token punctuation">]</span>,
|
|
@Integer<span class="token punctuation">[</span><span class="token number">717593</span><span class="token punctuation">]</span>,
|
|
<span class="token punctuation">]</span>
|
|
<span class="token assign-left variable">ts</span><span class="token operator">=</span><span class="token number">2018</span>-11-28 <span class="token number">19</span>:22:35<span class="token punctuation">;</span> <span class="token punctuation">[</span>cost<span class="token operator">=</span><span class="token number">29</span>.969732ms<span class="token punctuation">]</span> <span class="token assign-left variable">result</span><span class="token operator">=</span>@ArrayList<span class="token punctuation">[</span>
|
|
@Integer<span class="token punctuation">[</span><span class="token number">5</span><span class="token punctuation">]</span>,
|
|
@Integer<span class="token punctuation">[</span><span class="token number">29</span><span class="token punctuation">]</span>,
|
|
@Integer<span class="token punctuation">[</span><span class="token number">7651739</span><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 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>`,1),C=n("\u66F4\u591A\u7684\u529F\u80FD\u53EF\u4EE5\u67E5\u770B"),G=n("\u8FDB\u9636\u4F7F\u7528"),T=n("\u3002"),S=s("h2",{id:"_7-\u9000\u51FA-arthas",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#_7-\u9000\u51FA-arthas","aria-hidden":"true"},"#"),n(" 7. \u9000\u51FA arthas")],-1),q=s("p",null,[n("\u5982\u679C\u53EA\u662F\u9000\u51FA\u5F53\u524D\u7684\u8FDE\u63A5\uFF0C\u53EF\u4EE5\u7528"),s("code",null,"quit"),n("\u6216\u8005"),s("code",null,"exit"),n("\u547D\u4EE4\u3002Attach \u5230\u76EE\u6807\u8FDB\u7A0B\u4E0A\u7684 arthas \u8FD8\u4F1A\u7EE7\u7EED\u8FD0\u884C\uFF0C\u7AEF\u53E3\u4F1A\u4FDD\u6301\u5F00\u653E\uFF0C\u4E0B\u6B21\u8FDE\u63A5\u65F6\u53EF\u4EE5\u76F4\u63A5\u8FDE\u63A5\u4E0A\u3002")],-1),F=s("p",null,[n("\u5982\u679C\u60F3\u5B8C\u5168\u9000\u51FA arthas\uFF0C\u53EF\u4EE5\u6267\u884C"),s("code",null,"stop"),n("\u547D\u4EE4\u3002")],-1);function O(B,U){const c=o("ExternalLinkIcon"),p=o("RouterLink");return i(),u("div",null,[k,s("p",null,[d,m,s("a",b,[v,a(c)])]),h,s("p",null,[g,a(p,{to:"/doc/dashboard.html"},{default:t(()=>[_]),_:1}),f,y,w,I,j]),M,s("p",null,[A,a(p,{to:"/doc/watch.html"},{default:t(()=>[x]),_:1}),N,L,E]),R,s("p",null,[C,a(p,{to:"/doc/advanced-use.html"},{default:t(()=>[G]),_:1}),T]),S,q,F])}var $=l(r,[["render",O],["__file","quick-start.html.vue"]]);export{$ as default};
|