update doc

This commit is contained in:
hengyunabc
2022-08-05 15:16:57 +08:00
parent 9274a5bbef
commit 628f3e71ef
289 changed files with 696 additions and 696 deletions
+4 -4
View File
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{_ as i,f as d,u as p,g as f,o as v,c as k,a as e,t as c,b as g,w as L,h as l,r as x,e as B}from"./app.391b0e4e.js";const N={class:"theme-container"},T={class:"page"},b={class:"theme-default-content"},C=e("h1",null,"404",-1),M=d({__name:"404",setup(R){var a,s,n;const _=p(),o=f(),t=(a=o.value.notFound)!=null?a:["Not Found"],r=()=>t[Math.floor(Math.random()*t.length)],u=(s=o.value.home)!=null?s:_.value,m=(n=o.value.backToHome)!=null?n:"Back to home";return(V,w)=>{const h=x("RouterLink");return v(),k("div",N,[e("main",T,[e("div",b,[C,e("blockquote",null,c(r()),1),g(h,{to:l(u)},{default:L(()=>[B(c(l(m)),1)]),_:1},8,["to"])])])])}}});var F=i(M,[["__file","404.vue"]]);export{F as default};
import{_ as i,f as d,u as p,g as f,o as v,c as k,a as e,t as c,b as g,w as L,h as l,r as x,e as B}from"./app.bd2aade7.js";const N={class:"theme-container"},T={class:"page"},b={class:"theme-default-content"},C=e("h1",null,"404",-1),M=d({__name:"404",setup(R){var a,s,n;const _=p(),o=f(),t=(a=o.value.notFound)!=null?a:["Not Found"],r=()=>t[Math.floor(Math.random()*t.length)],u=(s=o.value.home)!=null?s:_.value,m=(n=o.value.backToHome)!=null?n:"Back to home";return(V,w)=>{const h=x("RouterLink");return v(),k("div",N,[e("main",T,[e("div",b,[C,e("blockquote",null,c(r()),1),g(h,{to:l(u)},{default:L(()=>[B(c(l(m)),1)]),_:1},8,["to"])])])])}}});var F=i(M,[["__file","404.vue"]]);export{F as default};
@@ -1 +1 @@
import{_ as e,o as _,c}from"./app.391b0e4e.js";const r={};function t(o,a){return _(),c("div")}var s=e(r,[["render",t],["__file","404.html.vue"]]);export{s as default};
import{_ as e,o as _,c}from"./app.bd2aade7.js";const r={};function t(o,a){return _(),c("div")}var s=e(r,[["render",t],["__file","404.html.vue"]]);export{s as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
import{_ as r,o as i,c,a as s,b as n,w as t,e as a,d as p,r as l}from"./app.391b0e4e.js";const d={},u=s("h1",{id:"\u8FDB\u9636\u4F7F\u7528",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#\u8FDB\u9636\u4F7F\u7528","aria-hidden":"true"},"#"),a(" \u8FDB\u9636\u4F7F\u7528")],-1),h=s("h2",{id:"web-console",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#web-console","aria-hidden":"true"},"#"),a(" Web Console")],-1),v=s("p",null,"\u901A\u8FC7 websocket \u8FDE\u63A5 Arthas\u3002",-1),b=a("Web Console"),m=s("h2",{id:"arthas-properties",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#arthas-properties","aria-hidden":"true"},"#"),a(" Arthas Properties")],-1),k=a("Arthas Properties"),_=s("h2",{id:"\u4EE5-java-agent-\u65B9\u5F0F\u542F\u52A8",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#\u4EE5-java-agent-\u65B9\u5F0F\u542F\u52A8","aria-hidden":"true"},"#"),a(" \u4EE5 java agent \u65B9\u5F0F\u542F\u52A8")],-1),g=a("\u4EE5 java agent \u65B9\u5F0F\u542F\u52A8"),f=p(`<h2 id="as-sh-\u548C-arthas-boot-\u6280\u5DE7" tabindex="-1"><a class="header-anchor" href="#as-sh-\u548C-arthas-boot-\u6280\u5DE7" aria-hidden="true">#</a> as.sh \u548C arthas-boot \u6280\u5DE7</h2><ul><li>\u901A\u8FC7<code>select</code>\u529F\u80FD\u9009\u62E9 attach \u7684\u8FDB\u7A0B\u3002</li></ul><p>\u6B63\u5E38\u60C5\u51B5\u4E0B\uFF0C\u6BCF\u6B21\u6267\u884C<code>as.sh</code>/<code>arthas-boot.jar</code>\u9700\u8981\u9009\u62E9\uFF0C\u6216\u8005\u6307\u5B9A PID\u3002\u8FD9\u6837\u4F1A\u6BD4\u8F83\u9EBB\u70E6\uFF0C\u56E0\u4E3A\u6BCF\u6B21\u542F\u52A8\u5E94\u7528\uFF0C\u5B83\u7684 PID \u4F1A\u53D8\u5316\u3002</p><p>\u6BD4\u5982\uFF0C\u5DF2\u7ECF\u542F\u52A8\u4E86<code>math-game.jar</code>\uFF0C\u4F7F\u7528<code>jps</code>\u547D\u4EE4\u67E5\u770B\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ jps
import{_ as r,o as i,c,a as s,b as n,w as t,e as a,d as p,r as l}from"./app.bd2aade7.js";const d={},u=s("h1",{id:"\u8FDB\u9636\u4F7F\u7528",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#\u8FDB\u9636\u4F7F\u7528","aria-hidden":"true"},"#"),a(" \u8FDB\u9636\u4F7F\u7528")],-1),h=s("h2",{id:"web-console",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#web-console","aria-hidden":"true"},"#"),a(" Web Console")],-1),v=s("p",null,"\u901A\u8FC7 websocket \u8FDE\u63A5 Arthas\u3002",-1),b=a("Web Console"),m=s("h2",{id:"arthas-properties",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#arthas-properties","aria-hidden":"true"},"#"),a(" Arthas Properties")],-1),k=a("Arthas Properties"),_=s("h2",{id:"\u4EE5-java-agent-\u65B9\u5F0F\u542F\u52A8",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#\u4EE5-java-agent-\u65B9\u5F0F\u542F\u52A8","aria-hidden":"true"},"#"),a(" \u4EE5 java agent \u65B9\u5F0F\u542F\u52A8")],-1),g=a("\u4EE5 java agent \u65B9\u5F0F\u542F\u52A8"),f=p(`<h2 id="as-sh-\u548C-arthas-boot-\u6280\u5DE7" tabindex="-1"><a class="header-anchor" href="#as-sh-\u548C-arthas-boot-\u6280\u5DE7" aria-hidden="true">#</a> as.sh \u548C arthas-boot \u6280\u5DE7</h2><ul><li>\u901A\u8FC7<code>select</code>\u529F\u80FD\u9009\u62E9 attach \u7684\u8FDB\u7A0B\u3002</li></ul><p>\u6B63\u5E38\u60C5\u51B5\u4E0B\uFF0C\u6BCF\u6B21\u6267\u884C<code>as.sh</code>/<code>arthas-boot.jar</code>\u9700\u8981\u9009\u62E9\uFF0C\u6216\u8005\u6307\u5B9A PID\u3002\u8FD9\u6837\u4F1A\u6BD4\u8F83\u9EBB\u70E6\uFF0C\u56E0\u4E3A\u6BCF\u6B21\u542F\u52A8\u5E94\u7528\uFF0C\u5B83\u7684 PID \u4F1A\u53D8\u5316\u3002</p><p>\u6BD4\u5982\uFF0C\u5DF2\u7ECF\u542F\u52A8\u4E86<code>math-game.jar</code>\uFF0C\u4F7F\u7528<code>jps</code>\u547D\u4EE4\u67E5\u770B\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ jps
<span class="token number">58883</span> math-game.jar
<span class="token number">58884</span> Jps
</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>\u901A\u8FC7<code>select</code>\u53C2\u6570\u53EF\u4EE5\u6307\u5B9A\u8FDB\u7A0B\u540D\u5B57\uFF0C\u975E\u5E38\u65B9\u4FBF\u3002</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ ./as.sh --select math-game
@@ -1,4 +1,4 @@
import{_ as l,o as i,c,a,b as n,w as t,e as s,d as p,r}from"./app.391b0e4e.js";const d={},u=a("h1",{id:"advanced-usage",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#advanced-usage","aria-hidden":"true"},"#"),s(" Advanced Usage")],-1),h=a("h2",{id:"web-console",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#web-console","aria-hidden":"true"},"#"),s(" Web Console")],-1),v=a("p",null,"Arthas supports living inside a browser. The communication between arthas and browser is via websocket.",-1),b=s("Web Console"),m=a("h2",{id:"arthas-properties",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#arthas-properties","aria-hidden":"true"},"#"),s(" Arthas Properties")],-1),k=s("Arthas Properties"),_=a("h2",{id:"start-as-a-java-agent",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#start-as-a-java-agent","aria-hidden":"true"},"#"),s(" Start as a Java Agent")],-1),g=s("Start as a Java Agent"),f=p(`<h2 id="as-sh-and-arthas-boot-tips" tabindex="-1"><a class="header-anchor" href="#as-sh-and-arthas-boot-tips" aria-hidden="true">#</a> as.sh and arthas-boot tips</h2><ul><li>Select the process to be attached via the <code>select</code> option.</li></ul><p>Normally, <code>as.sh</code>/<code>arthas-boot.jar</code> needs to a pid, bacause the pid will change.</p><p>For example, with <code>math-game.jar</code> already started, use the <code>jps</code> command to see.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ jps
import{_ as l,o as i,c,a,b as n,w as t,e as s,d as p,r}from"./app.bd2aade7.js";const d={},u=a("h1",{id:"advanced-usage",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#advanced-usage","aria-hidden":"true"},"#"),s(" Advanced Usage")],-1),h=a("h2",{id:"web-console",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#web-console","aria-hidden":"true"},"#"),s(" Web Console")],-1),v=a("p",null,"Arthas supports living inside a browser. The communication between arthas and browser is via websocket.",-1),b=s("Web Console"),m=a("h2",{id:"arthas-properties",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#arthas-properties","aria-hidden":"true"},"#"),s(" Arthas Properties")],-1),k=s("Arthas Properties"),_=a("h2",{id:"start-as-a-java-agent",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#start-as-a-java-agent","aria-hidden":"true"},"#"),s(" Start as a Java Agent")],-1),g=s("Start as a Java Agent"),f=p(`<h2 id="as-sh-and-arthas-boot-tips" tabindex="-1"><a class="header-anchor" href="#as-sh-and-arthas-boot-tips" aria-hidden="true">#</a> as.sh and arthas-boot tips</h2><ul><li>Select the process to be attached via the <code>select</code> option.</li></ul><p>Normally, <code>as.sh</code>/<code>arthas-boot.jar</code> needs to a pid, bacause the pid will change.</p><p>For example, with <code>math-game.jar</code> already started, use the <code>jps</code> command to see.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ jps
<span class="token number">58883</span> math-game.jar
<span class="token number">58884</span> Jps
</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>The <code>select</code> option allows you to specify a process name, which is very convenient.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ ./as.sh --select math-game
@@ -1,4 +1,4 @@
import{_ as e,o as l,c as o,a as s,b as n,d as r,e as a,r as i}from"./app.391b0e4e.js";const c={},p=r(`<h1 id="\u8868\u8FBE\u5F0F\u6838\u5FC3\u53D8\u91CF" tabindex="-1"><a class="header-anchor" href="#\u8868\u8FBE\u5F0F\u6838\u5FC3\u53D8\u91CF" aria-hidden="true">#</a> \u8868\u8FBE\u5F0F\u6838\u5FC3\u53D8\u91CF</h1><p>\u65E0\u8BBA\u662F\u5339\u914D\u8868\u8FBE\u5F0F\u4E5F\u597D\u3001\u89C2\u5BDF\u8868\u8FBE\u5F0F\u4E5F\u7F62\uFF0C\u4ED6\u4EEC\u6838\u5FC3\u5224\u65AD\u53D8\u91CF\u90FD\u662F\u56F4\u7ED5\u7740\u4E00\u4E2A Arthas \u4E2D\u7684\u901A\u7528\u901A\u77E5\u5BF9\u8C61 <code>Advice</code> \u8FDB\u884C\u3002</p><p>\u5B83\u7684\u7B80\u7565\u4EE3\u7801\u7ED3\u6784\u5982\u4E0B</p><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Advice</span> <span class="token punctuation">{</span>
import{_ as e,o as l,c as o,a as s,b as n,d as r,e as a,r as i}from"./app.bd2aade7.js";const c={},p=r(`<h1 id="\u8868\u8FBE\u5F0F\u6838\u5FC3\u53D8\u91CF" tabindex="-1"><a class="header-anchor" href="#\u8868\u8FBE\u5F0F\u6838\u5FC3\u53D8\u91CF" aria-hidden="true">#</a> \u8868\u8FBE\u5F0F\u6838\u5FC3\u53D8\u91CF</h1><p>\u65E0\u8BBA\u662F\u5339\u914D\u8868\u8FBE\u5F0F\u4E5F\u597D\u3001\u89C2\u5BDF\u8868\u8FBE\u5F0F\u4E5F\u7F62\uFF0C\u4ED6\u4EEC\u6838\u5FC3\u5224\u65AD\u53D8\u91CF\u90FD\u662F\u56F4\u7ED5\u7740\u4E00\u4E2A Arthas \u4E2D\u7684\u901A\u7528\u901A\u77E5\u5BF9\u8C61 <code>Advice</code> \u8FDB\u884C\u3002</p><p>\u5B83\u7684\u7B80\u7565\u4EE3\u7801\u7ED3\u6784\u5982\u4E0B</p><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Advice</span> <span class="token punctuation">{</span>
<span class="token keyword">private</span> <span class="token keyword">final</span> <span class="token class-name">ClassLoader</span> loader<span class="token punctuation">;</span>
<span class="token keyword">private</span> <span class="token keyword">final</span> <span class="token class-name">Class</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token operator">?</span><span class="token punctuation">&gt;</span></span> clazz<span class="token punctuation">;</span>
@@ -1,4 +1,4 @@
import{_ as s,o as l,c as o,a as e,b as a,d as r,e as t,r as i}from"./app.391b0e4e.js";const c={},d=r(`<h1 id="fundamental-fields-in-expressions" tabindex="-1"><a class="header-anchor" href="#fundamental-fields-in-expressions" aria-hidden="true">#</a> Fundamental Fields in Expressions</h1><p>There is a very fundamental class <code>Advice</code> for the expressions used in filtering, tracing or monitoring and other aspects in commands.</p><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Advice</span> <span class="token punctuation">{</span>
import{_ as s,o as l,c as o,a as e,b as a,d as r,e as t,r as i}from"./app.bd2aade7.js";const c={},d=r(`<h1 id="fundamental-fields-in-expressions" tabindex="-1"><a class="header-anchor" href="#fundamental-fields-in-expressions" aria-hidden="true">#</a> Fundamental Fields in Expressions</h1><p>There is a very fundamental class <code>Advice</code> for the expressions used in filtering, tracing or monitoring and other aspects in commands.</p><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Advice</span> <span class="token punctuation">{</span>
<span class="token keyword">private</span> <span class="token keyword">final</span> <span class="token class-name">ClassLoader</span> loader<span class="token punctuation">;</span>
<span class="token keyword">private</span> <span class="token keyword">final</span> <span class="token class-name">Class</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token operator">?</span><span class="token punctuation">&gt;</span></span> clazz<span class="token punctuation">;</span>
@@ -1,2 +1,2 @@
import{_ as s,o as r,c as n,a as e,b as o,w as c,d as i,e as a,r as d}from"./app.391b0e4e.js";const l={},h=i(`<h1 id="start-as-a-java-agent" tabindex="-1"><a class="header-anchor" href="#start-as-a-java-agent" aria-hidden="true">#</a> Start as a Java Agent</h1><p>Usually Arthas dynamic attach the applications on the fly, but from version <code>3.2.0</code> onwards, Arthas supports starting directly as a java agent.</p><p>For example, download the full arthas zip package, decompress it and start it by specifying <code>arthas-agent.jar</code> with the parameter <code>-javaagent</code>.</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>java -javaagent:/tmp/test/arthas-agent.jar -jar math-game.jar
import{_ as s,o as r,c as n,a as e,b as o,w as c,d as i,e as a,r as d}from"./app.bd2aade7.js";const l={},h=i(`<h1 id="start-as-a-java-agent" tabindex="-1"><a class="header-anchor" href="#start-as-a-java-agent" aria-hidden="true">#</a> Start as a Java Agent</h1><p>Usually Arthas dynamic attach the applications on the fly, but from version <code>3.2.0</code> onwards, Arthas supports starting directly as a java agent.</p><p>For example, download the full arthas zip package, decompress it and start it by specifying <code>arthas-agent.jar</code> with the parameter <code>-javaagent</code>.</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>java -javaagent:/tmp/test/arthas-agent.jar -jar math-game.jar
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,4),p=a("The default configuration is in the "),m=e("code",null,"arthas.properties",-1),_=a(" file in the decompression directory. Reference: "),u=a("Arthas Properties"),g=e("p",null,"Reference: https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html",-1);function v(f,j){const t=d("RouterLink");return r(),n("div",null,[h,e("p",null,[p,m,_,o(t,{to:"/en/doc/arthas-properties.html"},{default:c(()=>[u]),_:1})]),g])}var y=s(l,[["render",v],["__file","agent.html.vue"]]);export{y as default};
@@ -1,2 +1,2 @@
import{_ as s,o,c as n,a as e,b as r,w as c,d,e as a,r as i}from"./app.391b0e4e.js";const l={},h=d(`<h1 id="\u4EE5-java-agent-\u7684\u65B9\u5F0F\u542F\u52A8" tabindex="-1"><a class="header-anchor" href="#\u4EE5-java-agent-\u7684\u65B9\u5F0F\u542F\u52A8" aria-hidden="true">#</a> \u4EE5 Java Agent \u7684\u65B9\u5F0F\u542F\u52A8</h1><p>\u901A\u5E38 Arthas \u662F\u4EE5\u52A8\u6001 attach \u7684\u65B9\u5F0F\u6765\u8BCA\u65AD\u5E94\u7528\uFF0C\u4F46\u4ECE<code>3.2.0</code>\u7248\u672C\u8D77\uFF0CArthas \u652F\u6301\u76F4\u63A5\u4EE5 java agent \u7684\u65B9\u5F0F\u542F\u52A8\u3002</p><p>\u6BD4\u5982\u4E0B\u8F7D\u5168\u91CF\u7684 arthas zip \u5305\uFF0C\u89E3\u538B\u4E4B\u540E\u4EE5 <code>-javaagent</code> \u7684\u53C2\u6570\u6307\u5B9A<code>arthas-agent.jar</code>\u6765\u542F\u52A8\uFF1A</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>java -javaagent:/tmp/test/arthas-agent.jar -jar math-game.jar
import{_ as s,o,c as n,a as e,b as r,w as c,d,e as a,r as i}from"./app.bd2aade7.js";const l={},h=d(`<h1 id="\u4EE5-java-agent-\u7684\u65B9\u5F0F\u542F\u52A8" tabindex="-1"><a class="header-anchor" href="#\u4EE5-java-agent-\u7684\u65B9\u5F0F\u542F\u52A8" aria-hidden="true">#</a> \u4EE5 Java Agent \u7684\u65B9\u5F0F\u542F\u52A8</h1><p>\u901A\u5E38 Arthas \u662F\u4EE5\u52A8\u6001 attach \u7684\u65B9\u5F0F\u6765\u8BCA\u65AD\u5E94\u7528\uFF0C\u4F46\u4ECE<code>3.2.0</code>\u7248\u672C\u8D77\uFF0CArthas \u652F\u6301\u76F4\u63A5\u4EE5 java agent \u7684\u65B9\u5F0F\u542F\u52A8\u3002</p><p>\u6BD4\u5982\u4E0B\u8F7D\u5168\u91CF\u7684 arthas zip \u5305\uFF0C\u89E3\u538B\u4E4B\u540E\u4EE5 <code>-javaagent</code> \u7684\u53C2\u6570\u6307\u5B9A<code>arthas-agent.jar</code>\u6765\u542F\u52A8\uFF1A</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>java -javaagent:/tmp/test/arthas-agent.jar -jar math-game.jar
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,4),_=a("\u9ED8\u8BA4\u7684\u914D\u7F6E\u9879\u5728\u89E3\u538B\u76EE\u5F55\u91CC\u7684"),p=e("code",null,"arthas.properties",-1),m=a("\u6587\u4EF6\u91CC\u3002\u53C2\u8003\uFF1A"),u=a("Arthas Properties"),v=e("p",null,"Java Agent \u673A\u5236\u53C2\u8003\uFF1A https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html",-1);function g(j,x){const t=i("RouterLink");return o(),n("div",null,[h,e("p",null,[_,p,m,r(t,{to:"/doc/arthas-properties.html"},{default:c(()=>[u]),_:1})]),v])}var b=s(l,[["render",g],["__file","agent.html.vue"]]);export{b as default};
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
import{_ as e,o as a,c as t,d as s}from"./app.391b0e4e.js";const r={},i=s(`<h1 id="arthas-properties" tabindex="-1"><a class="header-anchor" href="#arthas-properties" aria-hidden="true">#</a> Arthas Properties</h1><p><code>arthas.properties</code>\u6587\u4EF6\u5728 arthas \u7684\u76EE\u5F55\u4E0B\u3002</p><ul><li>\u5982\u679C\u662F\u81EA\u52A8\u4E0B\u8F7D\u7684 arthas\uFF0C\u5219\u76EE\u5F55\u5728<code>~/.arthas/lib/3.x.x/arthas/</code>\u4E0B\u9762</li><li>\u5982\u679C\u662F\u4E0B\u8F7D\u7684\u5B8C\u6574\u5305\uFF0C\u5728 arthas \u89E3\u538B\u76EE\u5F55\u4E0B</li></ul><h2 id="\u652F\u6301\u7684\u914D\u7F6E\u9879" tabindex="-1"><a class="header-anchor" href="#\u652F\u6301\u7684\u914D\u7F6E\u9879" aria-hidden="true">#</a> \u652F\u6301\u7684\u914D\u7F6E\u9879</h2><div class="custom-container warning"><p class="custom-container-title">\u6CE8\u610F</p><p>\u6CE8\u610F\u914D\u7F6E\u5FC5\u987B\u662F<code>\u9A7C\u5CF0</code>\u7684\uFF0C\u548C spring boot \u7684<code>-</code>\u98CE\u683C\u4E0D\u4E00\u6837\u3002spring boot \u5E94\u7528\u624D\u540C\u65F6\u652F\u6301<code>\u9A7C\u5CF0</code> \u548C <code>-</code>\u98CE\u683C\u7684\u914D\u7F6E\u3002</p></div><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>#arthas.config.overrideAll=true
import{_ as e,o as a,c as t,d as s}from"./app.bd2aade7.js";const r={},i=s(`<h1 id="arthas-properties" tabindex="-1"><a class="header-anchor" href="#arthas-properties" aria-hidden="true">#</a> Arthas Properties</h1><p><code>arthas.properties</code>\u6587\u4EF6\u5728 arthas \u7684\u76EE\u5F55\u4E0B\u3002</p><ul><li>\u5982\u679C\u662F\u81EA\u52A8\u4E0B\u8F7D\u7684 arthas\uFF0C\u5219\u76EE\u5F55\u5728<code>~/.arthas/lib/3.x.x/arthas/</code>\u4E0B\u9762</li><li>\u5982\u679C\u662F\u4E0B\u8F7D\u7684\u5B8C\u6574\u5305\uFF0C\u5728 arthas \u89E3\u538B\u76EE\u5F55\u4E0B</li></ul><h2 id="\u652F\u6301\u7684\u914D\u7F6E\u9879" tabindex="-1"><a class="header-anchor" href="#\u652F\u6301\u7684\u914D\u7F6E\u9879" aria-hidden="true">#</a> \u652F\u6301\u7684\u914D\u7F6E\u9879</h2><div class="custom-container warning"><p class="custom-container-title">\u6CE8\u610F</p><p>\u6CE8\u610F\u914D\u7F6E\u5FC5\u987B\u662F<code>\u9A7C\u5CF0</code>\u7684\uFF0C\u548C spring boot \u7684<code>-</code>\u98CE\u683C\u4E0D\u4E00\u6837\u3002spring boot \u5E94\u7528\u624D\u540C\u65F6\u652F\u6301<code>\u9A7C\u5CF0</code> \u548C <code>-</code>\u98CE\u683C\u7684\u914D\u7F6E\u3002</p></div><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>#arthas.config.overrideAll=true
arthas.telnetPort=3658
arthas.httpPort=8563
arthas.ip=127.0.0.1
@@ -1,4 +1,4 @@
import{_ as e,o as t,c as a,d as i}from"./app.391b0e4e.js";const o={},r=i(`<h1 id="arthas-properties" tabindex="-1"><a class="header-anchor" href="#arthas-properties" aria-hidden="true">#</a> Arthas Properties</h1><p>The <code>arthas.properties</code> file is in the arthas directory.</p><ul><li>If it is automatically downloaded arthas, the directory is under <code>~/.arthas/lib/3.x.x/arthas/</code></li><li>If it is a downloaded complete package, under the decompression directory of arthas</li></ul><h2 id="supported-configuration-items" tabindex="-1"><a class="header-anchor" href="#supported-configuration-items" aria-hidden="true">#</a> Supported configuration items</h2><div class="custom-container warning"><p class="custom-container-title">WARNING</p><p>Note that the configuration must be <code>camel case</code>, which is different from the <code>-</code> style of spring boot. Only the spring boot application supports both <code>camel case</code> and <code>-</code> style configuration.</p></div><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>#arthas.config.overrideAll=true
import{_ as e,o as t,c as a,d as i}from"./app.bd2aade7.js";const o={},r=i(`<h1 id="arthas-properties" tabindex="-1"><a class="header-anchor" href="#arthas-properties" aria-hidden="true">#</a> Arthas Properties</h1><p>The <code>arthas.properties</code> file is in the arthas directory.</p><ul><li>If it is automatically downloaded arthas, the directory is under <code>~/.arthas/lib/3.x.x/arthas/</code></li><li>If it is a downloaded complete package, under the decompression directory of arthas</li></ul><h2 id="supported-configuration-items" tabindex="-1"><a class="header-anchor" href="#supported-configuration-items" aria-hidden="true">#</a> Supported configuration items</h2><div class="custom-container warning"><p class="custom-container-title">WARNING</p><p>Note that the configuration must be <code>camel case</code>, which is different from the <code>-</code> style of spring boot. Only the spring boot application supports both <code>camel case</code> and <code>-</code> style configuration.</p></div><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>#arthas.config.overrideAll=true
arthas.telnetPort=3658
arthas.httpPort=8563
arthas.ip=127.0.0.1
@@ -1,4 +1,4 @@
import{_ as r,o as i,c as t,a as e,b as d,d as a,e as s,r as l}from"./app.391b0e4e.js";const o={},c=a(`<h3 id="arthas3-0-\u7684\u65B0\u7279\u6027" tabindex="-1"><a class="header-anchor" href="#arthas3-0-\u7684\u65B0\u7279\u6027" aria-hidden="true">#</a> Arthas3.0 \u7684\u65B0\u7279\u6027</h3><h4 id="\u5728\u7EBF\u8BCA\u65AD\u529F\u80FD" tabindex="-1"><a class="header-anchor" href="#\u5728\u7EBF\u8BCA\u65AD\u529F\u80FD" aria-hidden="true">#</a> \u5728\u7EBF\u8BCA\u65AD\u529F\u80FD</h4><p>Arthas3.0 \u4E2D\u6700\u91CD\u8981\u7684\u7279\u6027\uFF0C\u4E0D\u9700\u8981\u767B\u9646\u673A\u5668\u5C31\u53EF\u4EE5\u5BF9\u5E94\u7528\u8FDB\u884C\u8BCA\u65AD\uFF0C\u4F53\u9A8C\u548C\u672C\u5730\u8BCA\u65AD\u5B8C\u5168\u4E00\u81F4</p><h5 id="\u4F7F\u7528\u6B65\u9AA4" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u6B65\u9AA4" aria-hidden="true">#</a> \u4F7F\u7528\u6B65\u9AA4</h5><p>TODO</p><h5 id="\u52A8\u56FE\u6F14\u793A" tabindex="-1"><a class="header-anchor" href="#\u52A8\u56FE\u6F14\u793A" aria-hidden="true">#</a> \u52A8\u56FE\u6F14\u793A</h5><p>TODO</p><h4 id="\u7BA1\u9053\u652F\u6301" tabindex="-1"><a class="header-anchor" href="#\u7BA1\u9053\u652F\u6301" aria-hidden="true">#</a> \u7BA1\u9053\u652F\u6301</h4><p>Arthas 3.0 \u5F00\u59CB\u652F\u6301\u7BA1\u9053, \u7387\u5148\u63D0\u4F9B\u4E86<code>grep</code>,<code>wc</code>,<code>plaintext</code>\u7684\u652F\u6301\u3002</p><h3 id="\u53BB-groovy-\u4F9D\u8D56" tabindex="-1"><a class="header-anchor" href="#\u53BB-groovy-\u4F9D\u8D56" aria-hidden="true">#</a> \u53BB groovy \u4F9D\u8D56</h3><p>groovy \u8868\u8FBE\u5F0F\u5728 arthas2.0 \u4E2D\u5927\u91CF\u4F7F\u7528\uFF0C\u4F8B\u5982 watch \u8868\u8FBE\u5F0F</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">watch</span> com.alibaba.sample.petstore.web.store.module.screen.ItemList <span class="token function">add</span> <span class="token string">&quot;params + &#39; &#39; + returnObj&quot;</span> params.size<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">==</span><span class="token number">2</span>
import{_ as r,o as i,c as t,a as e,b as d,d as a,e as s,r as l}from"./app.bd2aade7.js";const o={},c=a(`<h3 id="arthas3-0-\u7684\u65B0\u7279\u6027" tabindex="-1"><a class="header-anchor" href="#arthas3-0-\u7684\u65B0\u7279\u6027" aria-hidden="true">#</a> Arthas3.0 \u7684\u65B0\u7279\u6027</h3><h4 id="\u5728\u7EBF\u8BCA\u65AD\u529F\u80FD" tabindex="-1"><a class="header-anchor" href="#\u5728\u7EBF\u8BCA\u65AD\u529F\u80FD" aria-hidden="true">#</a> \u5728\u7EBF\u8BCA\u65AD\u529F\u80FD</h4><p>Arthas3.0 \u4E2D\u6700\u91CD\u8981\u7684\u7279\u6027\uFF0C\u4E0D\u9700\u8981\u767B\u9646\u673A\u5668\u5C31\u53EF\u4EE5\u5BF9\u5E94\u7528\u8FDB\u884C\u8BCA\u65AD\uFF0C\u4F53\u9A8C\u548C\u672C\u5730\u8BCA\u65AD\u5B8C\u5168\u4E00\u81F4</p><h5 id="\u4F7F\u7528\u6B65\u9AA4" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u6B65\u9AA4" aria-hidden="true">#</a> \u4F7F\u7528\u6B65\u9AA4</h5><p>TODO</p><h5 id="\u52A8\u56FE\u6F14\u793A" tabindex="-1"><a class="header-anchor" href="#\u52A8\u56FE\u6F14\u793A" aria-hidden="true">#</a> \u52A8\u56FE\u6F14\u793A</h5><p>TODO</p><h4 id="\u7BA1\u9053\u652F\u6301" tabindex="-1"><a class="header-anchor" href="#\u7BA1\u9053\u652F\u6301" aria-hidden="true">#</a> \u7BA1\u9053\u652F\u6301</h4><p>Arthas 3.0 \u5F00\u59CB\u652F\u6301\u7BA1\u9053, \u7387\u5148\u63D0\u4F9B\u4E86<code>grep</code>,<code>wc</code>,<code>plaintext</code>\u7684\u652F\u6301\u3002</p><h3 id="\u53BB-groovy-\u4F9D\u8D56" tabindex="-1"><a class="header-anchor" href="#\u53BB-groovy-\u4F9D\u8D56" aria-hidden="true">#</a> \u53BB groovy \u4F9D\u8D56</h3><p>groovy \u8868\u8FBE\u5F0F\u5728 arthas2.0 \u4E2D\u5927\u91CF\u4F7F\u7528\uFF0C\u4F8B\u5982 watch \u8868\u8FBE\u5F0F</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">watch</span> com.alibaba.sample.petstore.web.store.module.screen.ItemList <span class="token function">add</span> <span class="token string">&quot;params + &#39; &#39; + returnObj&quot;</span> params.size<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">==</span><span class="token number">2</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>\u5176\u4E2D<code>&quot;params + &#39; &#39; + returnObj&quot;</code>\u4EE5\u53CA<code>params.size()==2</code>\u80CC\u540E\u5176\u5B9E\u90FD\u4F7F\u7528\u4E86 groovy \u6765\u8FDB\u884C\u8868\u8FBE\u5F0F\u6C42\u503C\uFF0C\u5982\u679C\u53CD\u590D\u5927\u91CF\u7684\u8FD0\u884C\u8FD9\u4E9B\u8868\u8FBE\u5F0F\uFF0Cgroovy \u4F1A\u521B\u5EFA\u5927\u91CF\u7684 classloader\uFF0C\u6253\u6EE1 perm \u533A\u4ECE\u800C\u89E6\u53D1 FGC\u3002</p><p>\u4E3A\u4E86\u907F\u514D\u8FD9\u4E2A\u95EE\u9898\uFF0CArthas 3.0 \u4E2D\u4F7F\u7528\u4E86 ognl \u8FD9\u4E2A\u66F4\u52A0\u8F7B\u91CF\u7684\u8868\u8FBE\u5F0F\u6C42\u503C\u5E93\u6765\u4EE3\u66FF groovy\uFF0C\u5F7B\u5E95\u89E3\u51B3\u4E86 groovy \u5F15\u8D77\u7684 FGC \u98CE\u9669\u3002\u4F46\u7531\u4E8E\u8FD9\u4E2A\u66FF\u6362\uFF0C\u5BFC\u81F4\u539F\u6765\u4F7F\u7528 groovy \u811A\u672C\u7F16\u5199\u7684\u81EA\u5B9A\u4E49\u811A\u672C\u5931\u6548\u3002\u8FD9\u4E2A\u95EE\u9898\u7559\u5F85\u540E\u7EED\u89E3\u51B3\u3002</p>`,14),v=s("\u5728 3.0 \u4E2D\uFF0Cwatch \u547D\u4EE4\u7684\u8868\u8FBE\u5F0F\u90E8\u5206\u7684\u4E66\u5199\u6709\u4E86\u4E00\u4E9B\u6539\u53D8\uFF0C\u8BE6\u89C1"),u={href:"https://arthas.aliyun.com/doc/watch",target:"_blank",rel:"noopener noreferrer"},m=s("\u8FD9\u91CC"),h=a(`<h4 id="\u63D0\u5347-rt-\u7EDF\u8BA1\u7CBE\u5EA6" tabindex="-1"><a class="header-anchor" href="#\u63D0\u5347-rt-\u7EDF\u8BA1\u7CBE\u5EA6" aria-hidden="true">#</a> \u63D0\u5347 rt \u7EDF\u8BA1\u7CBE\u5EA6</h4><p>Arthas 2.0 \u4E2D\uFF0C\u7EDF\u8BA1 rt \u90FD\u662F\u4EE5<code>ms</code>\u4E3A\u5355\u4F4D\uFF0C\u5BF9\u4E8E\u67D0\u4E9B\u6BD4\u8F83\u5C0F\u7684\u65B9\u6CD5\u8C03\u7528\uFF0C\u8017\u65F6\u5728\u6BEB\u79D2\u4EE5\u4E0B\u7684\u90FD\u4F1A\u88AB\u8BA4\u4E3A\u662F 0ms\uFF0C\u9020\u6210 trace \u603B\u65F6\u95F4\u548C\u5404\u65B9\u6CD5\u7684\u65F6\u95F4\u76F8\u52A0\u4E0D\u4E00\u81F4\u7B49\u95EE\u9898\uFF08\u867D\u7136\u8FD9\u91CC\u9762\u786E\u5B9E\u4F1A\u6709\u8BEF\u5DEE\uFF0C\u4E3B\u8981 Arthas \u81EA\u8EAB\u7684\u5F00\u9500\uFF09\u3002Arthas 3.0 \u4E2D\u6240\u6709 rt \u7684\u5355\u4F4D\u7EDF\u4E00\u6539\u4E3A\u4F7F\u7528<code>ns</code>\u6765\u7EDF\u8BA1\uFF0C\u7CBE\u51C6\u6355\u83B7\u4F60\u7684\u65B9\u6CD5\u8017\u65F6\uFF0C\u8BA9 0ms \u8FD9\u6837\u65E0\u610F\u4E49\u7684\u7EDF\u8BA1\u6570\u636E\u4E0D\u518D\u51FA\u73B0\uFF01</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ tt -l
INDEX TIMESTAMP COST(ms) IS-RET IS-EXP OBJECT CLASS METHOD
------------------------------------------------------------------------------------------------------------------------------------------------------------
@@ -1,4 +1,4 @@
import{_ as o,o as s,c,a as e,b as a,e as t,d as i,r}from"./app.391b0e4e.js";const d={},l=e("h1",{id:"arthas-async-jobs",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#arthas-async-jobs","aria-hidden":"true"},"#"),t(" Arthas Async Jobs")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=case-async-jobs",target:"_blank",rel:"noopener noreferrer"},h=e("code",null,"Async Jobs",-1),p=t(" online tutorial"),b=t("Asynchronous jobs in arthas. The idea is borrowed from "),m={href:"http://man7.org/linux/man-pages/man1/jobs.1p.html",target:"_blank",rel:"noopener noreferrer"},g=t("linux jobs"),f=t("."),v=i(`<h2 id="_1-use-to-run-the-command-in-the-background" tabindex="-1"><a class="header-anchor" href="#_1-use-to-run-the-command-in-the-background" aria-hidden="true">#</a> 1. Use &amp; to run the command in the background</h2><p>For example, execute the trace command in the background:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>trace Test t <span class="token operator">&amp;</span>
import{_ as o,o as s,c,a as e,b as a,e as t,d as i,r}from"./app.bd2aade7.js";const d={},l=e("h1",{id:"arthas-async-jobs",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#arthas-async-jobs","aria-hidden":"true"},"#"),t(" Arthas Async Jobs")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=case-async-jobs",target:"_blank",rel:"noopener noreferrer"},h=e("code",null,"Async Jobs",-1),p=t(" online tutorial"),b=t("Asynchronous jobs in arthas. The idea is borrowed from "),m={href:"http://man7.org/linux/man-pages/man1/jobs.1p.html",target:"_blank",rel:"noopener noreferrer"},g=t("linux jobs"),f=t("."),v=i(`<h2 id="_1-use-to-run-the-command-in-the-background" tabindex="-1"><a class="header-anchor" href="#_1-use-to-run-the-command-in-the-background" aria-hidden="true">#</a> 1. Use &amp; to run the command in the background</h2><p>For example, execute the trace command in the background:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>trace Test t <span class="token operator">&amp;</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>By doing this, the current command is put to the background to run, you can continue to execute other commands in the console.</p><h2 id="_2-list-background-jobs" tabindex="-1"><a class="header-anchor" href="#_2-list-background-jobs" aria-hidden="true">#</a> 2. List background jobs</h2><p>If you want to list all background jobs, you can execute the <code>jobs</code> command and the results are as follows:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">jobs</span>
<span class="token punctuation">[</span><span class="token number">10</span><span class="token punctuation">]</span>*
Stopped <span class="token function">watch</span> com.taobao.container.Test <span class="token builtin class-name">test</span> <span class="token string">&quot;params[0].{? #this.name == null }&quot;</span> -x <span class="token number">2</span>
@@ -1,4 +1,4 @@
import{_ as t,o,c,a,b as n,e,d as i,r as l}from"./app.391b0e4e.js";const d={},r=a("h1",{id:"arthas-\u540E\u53F0\u5F02\u6B65\u4EFB\u52A1",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#arthas-\u540E\u53F0\u5F02\u6B65\u4EFB\u52A1","aria-hidden":"true"},"#"),e(" Arthas \u540E\u53F0\u5F02\u6B65\u4EFB\u52A1")],-1),p={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=case-async-jobs",target:"_blank",rel:"noopener noreferrer"},h=a("code",null,"\u540E\u53F0\u5F02\u6B65\u4EFB\u52A1",-1),u=e("\u5728\u7EBF\u6559\u7A0B"),b=e("arthas \u4E2D\u7684\u540E\u53F0\u5F02\u6B65\u4EFB\u52A1\uFF0C\u4F7F\u7528\u4E86\u4EFF linux \u7CFB\u7EDF\u4EFB\u52A1\u76F8\u5173\u7684\u547D\u4EE4\u3002"),m={href:"https://ehlxr.me/2017/01/18/Linux-%E4%B8%AD-fg%E3%80%81bg%E3%80%81jobs%E3%80%81-%E6%8C%87%E4%BB%A4/",target:"_blank",rel:"noopener noreferrer"},g=e("linux \u4EFB\u52A1\u76F8\u5173\u4ECB\u7ECD"),_=e("\u3002"),v=i(`<h2 id="_1-\u4F7F\u7528-\u5728\u540E\u53F0\u6267\u884C\u4EFB\u52A1" tabindex="-1"><a class="header-anchor" href="#_1-\u4F7F\u7528-\u5728\u540E\u53F0\u6267\u884C\u4EFB\u52A1" aria-hidden="true">#</a> 1. \u4F7F\u7528&amp;\u5728\u540E\u53F0\u6267\u884C\u4EFB\u52A1</h2><p>\u6BD4\u5982\u5E0C\u671B\u6267\u884C\u540E\u53F0\u6267\u884C trace \u547D\u4EE4\uFF0C\u90A3\u4E48\u8C03\u7528\u4E0B\u9762\u547D\u4EE4</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>trace Test t <span class="token operator">&amp;</span>
import{_ as t,o,c,a,b as n,e,d as i,r as l}from"./app.bd2aade7.js";const d={},r=a("h1",{id:"arthas-\u540E\u53F0\u5F02\u6B65\u4EFB\u52A1",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#arthas-\u540E\u53F0\u5F02\u6B65\u4EFB\u52A1","aria-hidden":"true"},"#"),e(" Arthas \u540E\u53F0\u5F02\u6B65\u4EFB\u52A1")],-1),p={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=case-async-jobs",target:"_blank",rel:"noopener noreferrer"},h=a("code",null,"\u540E\u53F0\u5F02\u6B65\u4EFB\u52A1",-1),u=e("\u5728\u7EBF\u6559\u7A0B"),b=e("arthas \u4E2D\u7684\u540E\u53F0\u5F02\u6B65\u4EFB\u52A1\uFF0C\u4F7F\u7528\u4E86\u4EFF linux \u7CFB\u7EDF\u4EFB\u52A1\u76F8\u5173\u7684\u547D\u4EE4\u3002"),m={href:"https://ehlxr.me/2017/01/18/Linux-%E4%B8%AD-fg%E3%80%81bg%E3%80%81jobs%E3%80%81-%E6%8C%87%E4%BB%A4/",target:"_blank",rel:"noopener noreferrer"},g=e("linux \u4EFB\u52A1\u76F8\u5173\u4ECB\u7ECD"),_=e("\u3002"),v=i(`<h2 id="_1-\u4F7F\u7528-\u5728\u540E\u53F0\u6267\u884C\u4EFB\u52A1" tabindex="-1"><a class="header-anchor" href="#_1-\u4F7F\u7528-\u5728\u540E\u53F0\u6267\u884C\u4EFB\u52A1" aria-hidden="true">#</a> 1. \u4F7F\u7528&amp;\u5728\u540E\u53F0\u6267\u884C\u4EFB\u52A1</h2><p>\u6BD4\u5982\u5E0C\u671B\u6267\u884C\u540E\u53F0\u6267\u884C trace \u547D\u4EE4\uFF0C\u90A3\u4E48\u8C03\u7528\u4E0B\u9762\u547D\u4EE4</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>trace Test t <span class="token operator">&amp;</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>\u8FD9\u65F6\u547D\u4EE4\u5728\u540E\u53F0\u6267\u884C\uFF0C\u53EF\u4EE5\u5728 console \u4E2D\u7EE7\u7EED\u6267\u884C\u5176\u4ED6\u547D\u4EE4\u3002</p><h2 id="_2-\u901A\u8FC7-jobs-\u67E5\u770B\u4EFB\u52A1" tabindex="-1"><a class="header-anchor" href="#_2-\u901A\u8FC7-jobs-\u67E5\u770B\u4EFB\u52A1" aria-hidden="true">#</a> 2. \u901A\u8FC7 jobs \u67E5\u770B\u4EFB\u52A1</h2><p>\u5982\u679C\u5E0C\u671B\u67E5\u770B\u5F53\u524D\u6709\u54EA\u4E9B arthas \u4EFB\u52A1\u5728\u6267\u884C\uFF0C\u53EF\u4EE5\u6267\u884C jobs \u547D\u4EE4\uFF0C\u6267\u884C\u7ED3\u679C\u5982\u4E0B</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">jobs</span>
<span class="token punctuation">[</span><span class="token number">10</span><span class="token punctuation">]</span>*
Stopped <span class="token function">watch</span> com.taobao.container.Test <span class="token builtin class-name">test</span> <span class="token string">&quot;params[0].{? #this.name == null }&quot;</span> -x <span class="token number">2</span>
@@ -1,4 +1,4 @@
import{_ as s,o as i,c as o,a as e,b as r,d as a,e as n,r as c}from"./app.391b0e4e.js";const d={},l=a(`<h1 id="auth" tabindex="-1"><a class="header-anchor" href="#auth" aria-hidden="true">#</a> auth</h1><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Authenticates the current session</p></div><h3 id="configure-username-and-password" tabindex="-1"><a class="header-anchor" href="#configure-username-and-password" aria-hidden="true">#</a> Configure username and password</h3><p>When attaching, you can specify a password on the command line. such as:</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>java -jar arthas-boot.jar --password ppp
import{_ as s,o as i,c as o,a as e,b as r,d as a,e as n,r as c}from"./app.bd2aade7.js";const d={},l=a(`<h1 id="auth" tabindex="-1"><a class="header-anchor" href="#auth" aria-hidden="true">#</a> auth</h1><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Authenticates the current session</p></div><h3 id="configure-username-and-password" tabindex="-1"><a class="header-anchor" href="#configure-username-and-password" aria-hidden="true">#</a> Configure username and password</h3><p>When attaching, you can specify a password on the command line. such as:</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>java -jar arthas-boot.jar --password ppp
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><ul><li><p>The user can be specified by the <code>--username</code> option, the default value is <code>arthas</code>.</p></li><li><p>You can also configure username/password in <code>arthas.properties</code>. The priority of the command line is higher than that of the configuration file.</p></li><li><p>If only <code>username</code> is configured and no <code>password</code> is configured, a random password will be generated and printed in <code>~/logs/arthas/arthas.log</code></p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>Using generated security password: 0vUBJpRIppkKuZ7dYzYqOKtranj4unGh
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div></li></ul><h3 id="local-connection-does-not-require-authentication" tabindex="-1"><a class="header-anchor" href="#local-connection-does-not-require-authentication" aria-hidden="true">#</a> Local connection does not require authentication</h3><p>By default, there are configurations in the <code>arthas.properties</code> file:</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>arthas.localConnectionNonAuth=true
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>When the password is configured, connect from localhost, the authentication is not required. The default configuration value is true, which is convenient for local connection. Authentication is only required when connecting remotely.</p><h3 id="authenticate-in-the-telnet-console" tabindex="-1"><a class="header-anchor" href="#authenticate-in-the-telnet-console" aria-hidden="true">#</a> Authenticate in the telnet console</h3><p>After connecting to arthas, directly executing the command will prompt for authentication:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@37430<span class="token punctuation">]</span>$ <span class="token builtin class-name">help</span>
@@ -1,4 +1,4 @@
import{_ as t,o as i,c as o,a as e,b as d,d as a,e as n,r}from"./app.391b0e4e.js";const c={},l=a(`<h1 id="auth" tabindex="-1"><a class="header-anchor" href="#auth" aria-hidden="true">#</a> auth</h1><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u9A8C\u8BC1\u5F53\u524D\u4F1A\u8BDD</p></div><h3 id="\u914D\u7F6E\u7528\u6237\u540D\u548C\u5BC6\u7801" tabindex="-1"><a class="header-anchor" href="#\u914D\u7F6E\u7528\u6237\u540D\u548C\u5BC6\u7801" aria-hidden="true">#</a> \u914D\u7F6E\u7528\u6237\u540D\u548C\u5BC6\u7801</h3><p>\u5728 attach \u65F6\uFF0C\u53EF\u4EE5\u5728\u547D\u4EE4\u884C\u6307\u5B9A\u5BC6\u7801\u3002\u6BD4\u5982\uFF1A</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>java -jar arthas-boot.jar --password ppp
import{_ as t,o as i,c as o,a as e,b as d,d as a,e as n,r}from"./app.bd2aade7.js";const c={},l=a(`<h1 id="auth" tabindex="-1"><a class="header-anchor" href="#auth" aria-hidden="true">#</a> auth</h1><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u9A8C\u8BC1\u5F53\u524D\u4F1A\u8BDD</p></div><h3 id="\u914D\u7F6E\u7528\u6237\u540D\u548C\u5BC6\u7801" tabindex="-1"><a class="header-anchor" href="#\u914D\u7F6E\u7528\u6237\u540D\u548C\u5BC6\u7801" aria-hidden="true">#</a> \u914D\u7F6E\u7528\u6237\u540D\u548C\u5BC6\u7801</h3><p>\u5728 attach \u65F6\uFF0C\u53EF\u4EE5\u5728\u547D\u4EE4\u884C\u6307\u5B9A\u5BC6\u7801\u3002\u6BD4\u5982\uFF1A</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>java -jar arthas-boot.jar --password ppp
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><ul><li><p>\u53EF\u4EE5\u901A\u8FC7 <code>--username</code> \u9009\u9879\u6765\u6307\u5B9A\u7528\u6237\uFF0C\u9ED8\u8BA4\u503C\u662F<code>arthas</code>\u3002</p></li><li><p>\u4E5F\u53EF\u4EE5\u5728 <code>arthas.properties</code> \u91CC\u4E2D\u914D\u7F6E username/password\u3002\u547D\u4EE4\u884C\u7684\u4F18\u5148\u7EA7\u5927\u4E8E\u914D\u7F6E\u6587\u4EF6\u3002</p></li><li><p>\u5982\u679C\u53EA\u914D\u7F6E<code>username</code>\uFF0C\u6CA1\u6709\u914D\u7F6E<code>password</code>\uFF0C\u5219\u4F1A\u751F\u6210\u968F\u673A\u5BC6\u7801\uFF0C\u6253\u5370\u5728<code>~/logs/arthas/arthas.log</code>\u4E2D</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>Using generated security password: 0vUBJpRIppkKuZ7dYzYqOKtranj4unGh
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div></li></ul><h3 id="\u672C\u5730\u8FDE\u63A5\u4E0D\u9274\u6743" tabindex="-1"><a class="header-anchor" href="#\u672C\u5730\u8FDE\u63A5\u4E0D\u9274\u6743" aria-hidden="true">#</a> \u672C\u5730\u8FDE\u63A5\u4E0D\u9274\u6743</h3><p>\u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0C\u5728<code>arthas.properties</code>\u6587\u4EF6\u91CC\u6709\u914D\u7F6E\uFF1A</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>arthas.localConnectionNonAuth=true
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>\u5F53\u914D\u7F6E\u5BC6\u7801\u65F6\uFF0C\u4F7F\u7528\u672C\u5730\u8FDE\u63A5\uFF0C\u4E5F\u4E0D\u9700\u8981\u9274\u6743\u3002\u9ED8\u8BA4\u914D\u7F6E\u503C\u662F true\uFF0C\u65B9\u4FBF\u672C\u5730\u8FDE\u63A5\u4F7F\u7528\u3002\u53EA\u6709\u8FDC\u7A0B\u8FDE\u63A5\u65F6\uFF0C\u624D\u9700\u8981\u9274\u6743\u3002</p><h3 id="\u5728-telnet-console-\u91CC\u9274\u6743" tabindex="-1"><a class="header-anchor" href="#\u5728-telnet-console-\u91CC\u9274\u6743" aria-hidden="true">#</a> \u5728 telnet console \u91CC\u9274\u6743</h3><p>\u8FDE\u63A5\u5230 arthas \u540E\uFF0C\u76F4\u63A5\u6267\u884C\u547D\u4EE4\u4F1A\u63D0\u793A\u9700\u8981\u9274\u6743\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@37430<span class="token punctuation">]</span>$ <span class="token builtin class-name">help</span>
@@ -1,4 +1,4 @@
import{_ as a,o as e,c as s,d as n}from"./app.391b0e4e.js";const t={},i=n(`<h1 id="base64" tabindex="-1"><a class="header-anchor" href="#base64" aria-hidden="true">#</a> base64</h1><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>base64 \u7F16\u7801\u8F6C\u6362\uFF0C\u548C linux \u91CC\u7684 base64 \u547D\u4EE4\u7C7B\u4F3C\u3002</p></div><h3 id="\u5BF9\u6587\u4EF6\u8FDB\u884C-base64-\u7F16\u7801" tabindex="-1"><a class="header-anchor" href="#\u5BF9\u6587\u4EF6\u8FDB\u884C-base64-\u7F16\u7801" aria-hidden="true">#</a> \u5BF9\u6587\u4EF6\u8FDB\u884C base64 \u7F16\u7801</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@70070<span class="token punctuation">]</span>$ <span class="token builtin class-name">echo</span> <span class="token string">&#39;abc&#39;</span> <span class="token operator">&gt;</span> /tmp/test.txt
import{_ as a,o as e,c as s,d as n}from"./app.bd2aade7.js";const t={},i=n(`<h1 id="base64" tabindex="-1"><a class="header-anchor" href="#base64" aria-hidden="true">#</a> base64</h1><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>base64 \u7F16\u7801\u8F6C\u6362\uFF0C\u548C linux \u91CC\u7684 base64 \u547D\u4EE4\u7C7B\u4F3C\u3002</p></div><h3 id="\u5BF9\u6587\u4EF6\u8FDB\u884C-base64-\u7F16\u7801" tabindex="-1"><a class="header-anchor" href="#\u5BF9\u6587\u4EF6\u8FDB\u884C-base64-\u7F16\u7801" aria-hidden="true">#</a> \u5BF9\u6587\u4EF6\u8FDB\u884C base64 \u7F16\u7801</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@70070<span class="token punctuation">]</span>$ <span class="token builtin class-name">echo</span> <span class="token string">&#39;abc&#39;</span> <span class="token operator">&gt;</span> /tmp/test.txt
<span class="token punctuation">[</span>arthas@70070<span class="token punctuation">]</span>$ <span class="token function">cat</span> /tmp/test.txt
abc
@@ -1,4 +1,4 @@
import{_ as e,o as a,c as s,d as n}from"./app.391b0e4e.js";const t={},d=n(`<h1 id="base64" tabindex="-1"><a class="header-anchor" href="#base64" aria-hidden="true">#</a> base64</h1><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Encode and decode using Base64 representation.</p></div><h3 id="encode-to-base64" tabindex="-1"><a class="header-anchor" href="#encode-to-base64" aria-hidden="true">#</a> Encode to base64</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@70070<span class="token punctuation">]</span>$ <span class="token builtin class-name">echo</span> <span class="token string">&#39;abc&#39;</span> <span class="token operator">&gt;</span> /tmp/test.txt
import{_ as e,o as a,c as s,d as n}from"./app.bd2aade7.js";const t={},d=n(`<h1 id="base64" tabindex="-1"><a class="header-anchor" href="#base64" aria-hidden="true">#</a> base64</h1><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Encode and decode using Base64 representation.</p></div><h3 id="encode-to-base64" tabindex="-1"><a class="header-anchor" href="#encode-to-base64" aria-hidden="true">#</a> Encode to base64</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@70070<span class="token punctuation">]</span>$ <span class="token builtin class-name">echo</span> <span class="token string">&#39;abc&#39;</span> <span class="token operator">&gt;</span> /tmp/test.txt
<span class="token punctuation">[</span>arthas@70070<span class="token punctuation">]</span>$ <span class="token function">cat</span> /tmp/test.txt
abc
@@ -1,4 +1,4 @@
import{_ as t,o as d,c as i,a as e,b as o,w as c,d as a,e as s,r}from"./app.391b0e4e.js";const l={},h=a('<h1 id="\u6279\u5904\u7406\u529F\u80FD" tabindex="-1"><a class="header-anchor" href="#\u6279\u5904\u7406\u529F\u80FD" aria-hidden="true">#</a> \u6279\u5904\u7406\u529F\u80FD</h1><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u901A\u8FC7\u6279\u5904\u7406\u529F\u80FD\uFF0Carthas \u652F\u6301\u4E00\u6B21\u6027\u6279\u91CF\u8FD0\u884C\u591A\u4E2A\u547D\u4EE4\uFF0C\u5E76\u53D6\u5F97\u547D\u4EE4\u6267\u884C\u7684\u7ED3\u679C\u3002</p></div><h3 id="\u4F7F\u7528\u65B9\u6CD5" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u65B9\u6CD5" aria-hidden="true">#</a> \u4F7F\u7528\u65B9\u6CD5</h3><h4 id="\u7B2C\u4E00\u6B65-\u521B\u5EFA\u4F60\u7684\u6279\u5904\u7406\u811A\u672C" tabindex="-1"><a class="header-anchor" href="#\u7B2C\u4E00\u6B65-\u521B\u5EFA\u4F60\u7684\u6279\u5904\u7406\u811A\u672C" aria-hidden="true">#</a> \u7B2C\u4E00\u6B65\uFF1A \u521B\u5EFA\u4F60\u7684\u6279\u5904\u7406\u811A\u672C</h4><p>\u8FD9\u91CC\u6211\u4EEC\u65B0\u5EFA\u4E86\u4E00\u4E2A<code>test.as</code>\u811A\u672C\uFF0C\u4E3A\u4E86\u89C4\u8303\uFF0C\u6211\u4EEC\u91C7\u7528\u4E86.as \u540E\u7F00\u540D\uFF0C\u4F46\u4E8B\u5B9E\u4E0A\u4EFB\u610F\u7684\u6587\u672C\u6587\u4EF6\u90FD ok\u3002</p>',5),p={class:"custom-container tip"},u=e("p",{class:"custom-container-title"},"\u63D0\u793A",-1),v=e("li",null,"\u76EE\u524D\u9700\u8981\u6BCF\u4E2A\u547D\u4EE4\u5360\u4E00\u884C",-1),m=e("li",null,[s("dashboard \u52A1\u5FC5\u6307\u5B9A\u6267\u884C\u6B21\u6570("),e("code",null,"-n"),s(")\uFF0C\u5426\u5219\u4F1A\u5BFC\u81F4\u6279\u5904\u7406\u811A\u672C\u65E0\u6CD5\u7EC8\u6B62")],-1),_=e("li",null,[s("watch/tt/trace/monitor/stack \u7B49\u547D\u4EE4\u52A1\u5FC5\u6307\u5B9A\u6267\u884C\u6B21\u6570("),e("code",null,"-n"),s(")\uFF0C\u5426\u5219\u4F1A\u5BFC\u81F4\u6279\u5904\u7406\u811A\u672C\u65E0\u6CD5\u7EC8\u6B62")],-1),b=s("\u53EF\u4EE5\u4F7F\u7528\u5F02\u6B65\u540E\u53F0\u4EFB\u52A1\uFF0C\u5982 "),g=e("code",null,"watch c.t.X test returnObj > &",-1),x=s("\uFF0C\u8BA9\u547D\u4EE4\u4E00\u76F4\u5728\u540E\u53F0\u8FD0\u884C\uFF0C\u901A\u8FC7\u65E5\u5FD7\u83B7\u53D6\u7ED3\u679C\uFF0C"),f=s("\u83B7\u53D6\u66F4\u591A\u5F02\u6B65\u4EFB\u52A1\u7684\u4FE1\u606F"),k=a(`<div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>\u279C arthas git:(develop) cat /var/tmp/test.as
import{_ as t,o as d,c as i,a as e,b as o,w as c,d as a,e as s,r}from"./app.bd2aade7.js";const l={},h=a('<h1 id="\u6279\u5904\u7406\u529F\u80FD" tabindex="-1"><a class="header-anchor" href="#\u6279\u5904\u7406\u529F\u80FD" aria-hidden="true">#</a> \u6279\u5904\u7406\u529F\u80FD</h1><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u901A\u8FC7\u6279\u5904\u7406\u529F\u80FD\uFF0Carthas \u652F\u6301\u4E00\u6B21\u6027\u6279\u91CF\u8FD0\u884C\u591A\u4E2A\u547D\u4EE4\uFF0C\u5E76\u53D6\u5F97\u547D\u4EE4\u6267\u884C\u7684\u7ED3\u679C\u3002</p></div><h3 id="\u4F7F\u7528\u65B9\u6CD5" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u65B9\u6CD5" aria-hidden="true">#</a> \u4F7F\u7528\u65B9\u6CD5</h3><h4 id="\u7B2C\u4E00\u6B65-\u521B\u5EFA\u4F60\u7684\u6279\u5904\u7406\u811A\u672C" tabindex="-1"><a class="header-anchor" href="#\u7B2C\u4E00\u6B65-\u521B\u5EFA\u4F60\u7684\u6279\u5904\u7406\u811A\u672C" aria-hidden="true">#</a> \u7B2C\u4E00\u6B65\uFF1A \u521B\u5EFA\u4F60\u7684\u6279\u5904\u7406\u811A\u672C</h4><p>\u8FD9\u91CC\u6211\u4EEC\u65B0\u5EFA\u4E86\u4E00\u4E2A<code>test.as</code>\u811A\u672C\uFF0C\u4E3A\u4E86\u89C4\u8303\uFF0C\u6211\u4EEC\u91C7\u7528\u4E86.as \u540E\u7F00\u540D\uFF0C\u4F46\u4E8B\u5B9E\u4E0A\u4EFB\u610F\u7684\u6587\u672C\u6587\u4EF6\u90FD ok\u3002</p>',5),p={class:"custom-container tip"},u=e("p",{class:"custom-container-title"},"\u63D0\u793A",-1),v=e("li",null,"\u76EE\u524D\u9700\u8981\u6BCF\u4E2A\u547D\u4EE4\u5360\u4E00\u884C",-1),m=e("li",null,[s("dashboard \u52A1\u5FC5\u6307\u5B9A\u6267\u884C\u6B21\u6570("),e("code",null,"-n"),s(")\uFF0C\u5426\u5219\u4F1A\u5BFC\u81F4\u6279\u5904\u7406\u811A\u672C\u65E0\u6CD5\u7EC8\u6B62")],-1),_=e("li",null,[s("watch/tt/trace/monitor/stack \u7B49\u547D\u4EE4\u52A1\u5FC5\u6307\u5B9A\u6267\u884C\u6B21\u6570("),e("code",null,"-n"),s(")\uFF0C\u5426\u5219\u4F1A\u5BFC\u81F4\u6279\u5904\u7406\u811A\u672C\u65E0\u6CD5\u7EC8\u6B62")],-1),b=s("\u53EF\u4EE5\u4F7F\u7528\u5F02\u6B65\u540E\u53F0\u4EFB\u52A1\uFF0C\u5982 "),g=e("code",null,"watch c.t.X test returnObj > &",-1),x=s("\uFF0C\u8BA9\u547D\u4EE4\u4E00\u76F4\u5728\u540E\u53F0\u8FD0\u884C\uFF0C\u901A\u8FC7\u65E5\u5FD7\u83B7\u53D6\u7ED3\u679C\uFF0C"),f=s("\u83B7\u53D6\u66F4\u591A\u5F02\u6B65\u4EFB\u52A1\u7684\u4FE1\u606F"),k=a(`<div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>\u279C arthas git:(develop) cat /var/tmp/test.as
help
dashboard -n 1
session
@@ -1,4 +1,4 @@
import{_ as n,o as c,c as o,a as e,b as i,w as d,d as t,e as s,r}from"./app.391b0e4e.js";const l={},h=t(`<h1 id="batch-processing" tabindex="-1"><a class="header-anchor" href="#batch-processing" aria-hidden="true">#</a> Batch Processing</h1><p>With the help of Batch Processing, you can run multiple commands in batch and get the final result at the end.</p><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><h4 id="step-1-create-the-script" tabindex="-1"><a class="header-anchor" href="#step-1-create-the-script" aria-hidden="true">#</a> Step 1: Create the script</h4><p>Create a <code>test.as</code> script suffixed with <code>as</code>. Here <code>as</code> is suggested for the suffix of the filename, but in fact any suffix is acceptable.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>\u279C arthas git:<span class="token punctuation">(</span>develop<span class="token punctuation">)</span> <span class="token function">cat</span> /var/tmp/test.as
import{_ as n,o as c,c as o,a as e,b as i,w as d,d as t,e as s,r}from"./app.bd2aade7.js";const l={},h=t(`<h1 id="batch-processing" tabindex="-1"><a class="header-anchor" href="#batch-processing" aria-hidden="true">#</a> Batch Processing</h1><p>With the help of Batch Processing, you can run multiple commands in batch and get the final result at the end.</p><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><h4 id="step-1-create-the-script" tabindex="-1"><a class="header-anchor" href="#step-1-create-the-script" aria-hidden="true">#</a> Step 1: Create the script</h4><p>Create a <code>test.as</code> script suffixed with <code>as</code>. Here <code>as</code> is suggested for the suffix of the filename, but in fact any suffix is acceptable.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>\u279C arthas git:<span class="token punctuation">(</span>develop<span class="token punctuation">)</span> <span class="token function">cat</span> /var/tmp/test.as
<span class="token builtin class-name">help</span>
dashboard -n <span class="token number">1</span>
session
@@ -1,2 +1,2 @@
import{_ as n,o as s,c,a as e,b as o,e as a,d as r,r as i}from"./app.391b0e4e.js";const l={},d=e("h1",{id:"cat",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#cat","aria-hidden":"true"},"#"),a(" cat")],-1),_={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-cat",target:"_blank",rel:"noopener noreferrer"},h=e("code",null,"cat",-1),u=a(" online tutorial"),p=r(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Concatenate and print files</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">cat</span> /tmp/a.txt
import{_ as n,o as s,c,a as e,b as o,e as a,d as r,r as i}from"./app.bd2aade7.js";const l={},d=e("h1",{id:"cat",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#cat","aria-hidden":"true"},"#"),a(" cat")],-1),_={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-cat",target:"_blank",rel:"noopener noreferrer"},h=e("code",null,"cat",-1),u=a(" online tutorial"),p=r(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Concatenate and print files</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">cat</span> /tmp/a.txt
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,2);function m(f,v){const t=i("ExternalLinkIcon");return s(),c("div",null,[d,e("p",null,[e("a",_,[h,u,o(t)])]),p])}var b=n(l,[["render",m],["__file","cat.html.vue"]]);export{b as default};
@@ -1,2 +1,2 @@
import{_ as n,o as c,c as s,a as e,b as o,e as a,d as r,r as i}from"./app.391b0e4e.js";const l={},d=e("h1",{id:"cat",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#cat","aria-hidden":"true"},"#"),a(" cat")],-1),_={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-cat",target:"_blank",rel:"noopener noreferrer"},h=e("code",null,"cat",-1),u=a("\u5728\u7EBF\u6559\u7A0B"),m=r(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u6253\u5370\u6587\u4EF6\u5185\u5BB9\uFF0C\u548C linux \u91CC\u7684 cat \u547D\u4EE4\u7C7B\u4F3C\u3002</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">cat</span> /tmp/a.txt
import{_ as n,o as c,c as s,a as e,b as o,e as a,d as r,r as i}from"./app.bd2aade7.js";const l={},d=e("h1",{id:"cat",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#cat","aria-hidden":"true"},"#"),a(" cat")],-1),_={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-cat",target:"_blank",rel:"noopener noreferrer"},h=e("code",null,"cat",-1),u=a("\u5728\u7EBF\u6559\u7A0B"),m=r(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u6253\u5370\u6587\u4EF6\u5185\u5BB9\uFF0C\u548C linux \u91CC\u7684 cat \u547D\u4EE4\u7C7B\u4F3C\u3002</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">cat</span> /tmp/a.txt
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,2);function p(v,f){const t=i("ExternalLinkIcon");return c(),s("div",null,[d,e("p",null,[e("a",_,[h,u,o(t)])]),m])}var b=n(l,[["render",p],["__file","cat.html.vue"]]);export{b as default};
@@ -1,4 +1,4 @@
import{_ as n,o as l,c as i,a as s,b as r,e as a,d,r as t}from"./app.391b0e4e.js";const c={},o=s("h1",{id:"classloader",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#classloader","aria-hidden":"true"},"#"),a(" classloader")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-classloader",target:"_blank",rel:"noopener noreferrer"},v=s("code",null,"classloader",-1),m=a("\u5728\u7EBF\u6559\u7A0B"),p=d(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u67E5\u770B classloader \u7684\u7EE7\u627F\u6811\uFF0Curls\uFF0C\u7C7B\u52A0\u8F7D\u4FE1\u606F</p></div><p><code>classloader</code> \u547D\u4EE4\u5C06 JVM \u4E2D\u6240\u6709\u7684 classloader \u7684\u4FE1\u606F\u7EDF\u8BA1\u51FA\u6765\uFF0C\u5E76\u53EF\u4EE5\u5C55\u793A\u7EE7\u627F\u6811\uFF0Curls \u7B49\u3002</p><p>\u53EF\u4EE5\u8BA9\u6307\u5B9A\u7684 classloader \u53BB getResources\uFF0C\u6253\u5370\u51FA\u6240\u6709\u67E5\u627E\u5230\u7684 resources \u7684 url\u3002\u5BF9\u4E8E<code>ResourceNotFoundException</code>\u6BD4\u8F83\u6709\u7528\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;">[l]</td><td style="text-align:left;">\u6309\u7C7B\u52A0\u8F7D\u5B9E\u4F8B\u8FDB\u884C\u7EDF\u8BA1</td></tr><tr><td style="text-align:right;">[t]</td><td style="text-align:left;">\u6253\u5370\u6240\u6709 ClassLoader \u7684\u7EE7\u627F\u6811</td></tr><tr><td style="text-align:right;">[a]</td><td style="text-align:left;">\u5217\u51FA\u6240\u6709 ClassLoader \u52A0\u8F7D\u7684\u7C7B\uFF0C\u8BF7\u8C28\u614E\u4F7F\u7528</td></tr><tr><td style="text-align:right;"><code>[c:]</code></td><td style="text-align:left;">ClassLoader \u7684 hashcode</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">\u6307\u5B9A\u6267\u884C\u8868\u8FBE\u5F0F\u7684 ClassLoader \u7684 class name</td></tr><tr><td style="text-align:right;"><code>[c: r:]</code></td><td style="text-align:left;">\u7528 ClassLoader \u53BB\u67E5\u627E resource</td></tr><tr><td style="text-align:right;"><code>[c: load:]</code></td><td style="text-align:left;">\u7528 ClassLoader \u53BB\u52A0\u8F7D\u6307\u5B9A\u7684\u7C7B</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><h4 id="\u6309\u7C7B\u52A0\u8F7D\u7C7B\u578B\u67E5\u770B\u7EDF\u8BA1\u4FE1\u606F" tabindex="-1"><a class="header-anchor" href="#\u6309\u7C7B\u52A0\u8F7D\u7C7B\u578B\u67E5\u770B\u7EDF\u8BA1\u4FE1\u606F" aria-hidden="true">#</a> \u6309\u7C7B\u52A0\u8F7D\u7C7B\u578B\u67E5\u770B\u7EDF\u8BA1\u4FE1\u606F</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ classloader
import{_ as n,o as l,c as i,a as s,b as r,e as a,d,r as t}from"./app.bd2aade7.js";const c={},o=s("h1",{id:"classloader",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#classloader","aria-hidden":"true"},"#"),a(" classloader")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-classloader",target:"_blank",rel:"noopener noreferrer"},v=s("code",null,"classloader",-1),m=a("\u5728\u7EBF\u6559\u7A0B"),p=d(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u67E5\u770B classloader \u7684\u7EE7\u627F\u6811\uFF0Curls\uFF0C\u7C7B\u52A0\u8F7D\u4FE1\u606F</p></div><p><code>classloader</code> \u547D\u4EE4\u5C06 JVM \u4E2D\u6240\u6709\u7684 classloader \u7684\u4FE1\u606F\u7EDF\u8BA1\u51FA\u6765\uFF0C\u5E76\u53EF\u4EE5\u5C55\u793A\u7EE7\u627F\u6811\uFF0Curls \u7B49\u3002</p><p>\u53EF\u4EE5\u8BA9\u6307\u5B9A\u7684 classloader \u53BB getResources\uFF0C\u6253\u5370\u51FA\u6240\u6709\u67E5\u627E\u5230\u7684 resources \u7684 url\u3002\u5BF9\u4E8E<code>ResourceNotFoundException</code>\u6BD4\u8F83\u6709\u7528\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;">[l]</td><td style="text-align:left;">\u6309\u7C7B\u52A0\u8F7D\u5B9E\u4F8B\u8FDB\u884C\u7EDF\u8BA1</td></tr><tr><td style="text-align:right;">[t]</td><td style="text-align:left;">\u6253\u5370\u6240\u6709 ClassLoader \u7684\u7EE7\u627F\u6811</td></tr><tr><td style="text-align:right;">[a]</td><td style="text-align:left;">\u5217\u51FA\u6240\u6709 ClassLoader \u52A0\u8F7D\u7684\u7C7B\uFF0C\u8BF7\u8C28\u614E\u4F7F\u7528</td></tr><tr><td style="text-align:right;"><code>[c:]</code></td><td style="text-align:left;">ClassLoader \u7684 hashcode</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">\u6307\u5B9A\u6267\u884C\u8868\u8FBE\u5F0F\u7684 ClassLoader \u7684 class name</td></tr><tr><td style="text-align:right;"><code>[c: r:]</code></td><td style="text-align:left;">\u7528 ClassLoader \u53BB\u67E5\u627E resource</td></tr><tr><td style="text-align:right;"><code>[c: load:]</code></td><td style="text-align:left;">\u7528 ClassLoader \u53BB\u52A0\u8F7D\u6307\u5B9A\u7684\u7C7B</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><h4 id="\u6309\u7C7B\u52A0\u8F7D\u7C7B\u578B\u67E5\u770B\u7EDF\u8BA1\u4FE1\u606F" tabindex="-1"><a class="header-anchor" href="#\u6309\u7C7B\u52A0\u8F7D\u7C7B\u578B\u67E5\u770B\u7EDF\u8BA1\u4FE1\u606F" aria-hidden="true">#</a> \u6309\u7C7B\u52A0\u8F7D\u7C7B\u578B\u67E5\u770B\u7EDF\u8BA1\u4FE1\u606F</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ classloader
name numberOfInstances loadedCountTotal
com.taobao.arthas.agent.ArthasClassloader <span class="token number">1</span> <span class="token number">2115</span>
BootstrapClassLoader <span class="token number">1</span> <span class="token number">1861</span>
@@ -1,4 +1,4 @@
import{_ as n,o as l,c as i,a as s,b as t,e as a,d as r,r as d}from"./app.391b0e4e.js";const c={},o=s("h1",{id:"classloader",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#classloader","aria-hidden":"true"},"#"),a(" classloader")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-classloader",target:"_blank",rel:"noopener noreferrer"},v=s("code",null,"classloader",-1),m=a(" online tutorial"),h=r(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>View hierarchy, urls and classes-loading info for the class-loaders.</p></div><p><code>classloader</code> can search and print out the URLs for a specified resource from one particular classloader. It is quite handy when analyzing <code>ResourceNotFoundException</code>.</p><h3 id="options" tabindex="-1"><a class="header-anchor" href="#options" aria-hidden="true">#</a> Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;">[l]</td><td style="text-align:left;">list all classloader instances</td></tr><tr><td style="text-align:right;">[t]</td><td style="text-align:left;">print classloader&#39;s hierarchy</td></tr><tr><td style="text-align:right;">[a]</td><td style="text-align:left;">list all the classes loaded by all the classloaders (use it with great caution since the output can be huge)</td></tr><tr><td style="text-align:right;">[c:]</td><td style="text-align:left;">print classloader&#39;s hashcode</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">The class name of the ClassLoader that executes the expression.</td></tr><tr><td style="text-align:right;"><code>[c: r:]</code></td><td style="text-align:left;">using ClassLoader to search resource</td></tr><tr><td style="text-align:right;"><code>[c: load:]</code></td><td style="text-align:left;">using ClassLoader to load class</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><h4 id="view-statistics-categorized-by-class-type" tabindex="-1"><a class="header-anchor" href="#view-statistics-categorized-by-class-type" aria-hidden="true">#</a> View statistics categorized by class type</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ classloader
import{_ as n,o as l,c as i,a as s,b as t,e as a,d as r,r as d}from"./app.bd2aade7.js";const c={},o=s("h1",{id:"classloader",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#classloader","aria-hidden":"true"},"#"),a(" classloader")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-classloader",target:"_blank",rel:"noopener noreferrer"},v=s("code",null,"classloader",-1),m=a(" online tutorial"),h=r(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>View hierarchy, urls and classes-loading info for the class-loaders.</p></div><p><code>classloader</code> can search and print out the URLs for a specified resource from one particular classloader. It is quite handy when analyzing <code>ResourceNotFoundException</code>.</p><h3 id="options" tabindex="-1"><a class="header-anchor" href="#options" aria-hidden="true">#</a> Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;">[l]</td><td style="text-align:left;">list all classloader instances</td></tr><tr><td style="text-align:right;">[t]</td><td style="text-align:left;">print classloader&#39;s hierarchy</td></tr><tr><td style="text-align:right;">[a]</td><td style="text-align:left;">list all the classes loaded by all the classloaders (use it with great caution since the output can be huge)</td></tr><tr><td style="text-align:right;">[c:]</td><td style="text-align:left;">print classloader&#39;s hashcode</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">The class name of the ClassLoader that executes the expression.</td></tr><tr><td style="text-align:right;"><code>[c: r:]</code></td><td style="text-align:left;">using ClassLoader to search resource</td></tr><tr><td style="text-align:right;"><code>[c: load:]</code></td><td style="text-align:left;">using ClassLoader to load class</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><h4 id="view-statistics-categorized-by-class-type" tabindex="-1"><a class="header-anchor" href="#view-statistics-categorized-by-class-type" aria-hidden="true">#</a> View statistics categorized by class type</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ classloader
name numberOfInstances loadedCountTotal
com.taobao.arthas.agent.ArthasClassloader <span class="token number">1</span> <span class="token number">2115</span>
BootstrapClassLoader <span class="token number">1</span> <span class="token number">1861</span>
@@ -1 +1 @@
import{_ as s,o as t,c,a as e,e as o}from"./app.391b0e4e.js";const a={},n=e("h1",{id:"cls",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#cls","aria-hidden":"true"},"#"),o(" cls")],-1),l=e("p",null,"\u6E05\u7A7A\u5F53\u524D\u5C4F\u5E55\u533A\u57DF\u3002",-1),r=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"\u63D0\u793A"),e("p",null,`\u975E\u7EC8\u7AEF\u6A21\u5F0F\u4E0B\u4F7F\u7528 cls \u6307\u4EE4\uFF0C\u4F1A\u63D0\u793A"Command 'cls' is only support tty session."\u3002`)],-1),i=[n,l,r];function _(d,h){return t(),c("div",null,i)}var m=s(a,[["render",_],["__file","cls.html.vue"]]);export{m as default};
import{_ as s,o as t,c,a as e,e as o}from"./app.bd2aade7.js";const a={},n=e("h1",{id:"cls",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#cls","aria-hidden":"true"},"#"),o(" cls")],-1),l=e("p",null,"\u6E05\u7A7A\u5F53\u524D\u5C4F\u5E55\u533A\u57DF\u3002",-1),r=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"\u63D0\u793A"),e("p",null,`\u975E\u7EC8\u7AEF\u6A21\u5F0F\u4E0B\u4F7F\u7528 cls \u6307\u4EE4\uFF0C\u4F1A\u63D0\u793A"Command 'cls' is only support tty session."\u3002`)],-1),i=[n,l,r];function _(d,h){return t(),c("div",null,i)}var m=s(a,[["render",_],["__file","cls.html.vue"]]);export{m as default};
@@ -1 +1 @@
import{_ as t,o as s,c,a as e,e as o}from"./app.391b0e4e.js";const n={},a=e("h1",{id:"cls",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#cls","aria-hidden":"true"},"#"),o(" cls")],-1),l=e("p",null,"clear current console.",-1),r=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"TIP"),e("p",null,`if not in tty mode,it will warn "Command 'cls' is only support tty session.".`)],-1),i=[a,l,r];function _(d,h){return s(),c("div",null,i)}var m=t(n,[["render",_],["__file","cls.html.vue"]]);export{m as default};
import{_ as t,o as s,c,a as e,e as o}from"./app.bd2aade7.js";const n={},a=e("h1",{id:"cls",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#cls","aria-hidden":"true"},"#"),o(" cls")],-1),l=e("p",null,"clear current console.",-1),r=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"TIP"),e("p",null,`if not in tty mode,it will warn "Command 'cls' is only support tty session.".`)],-1),i=[a,l,r];function _(d,h){return s(),c("div",null,i)}var m=t(n,[["render",_],["__file","cls.html.vue"]]);export{m as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{_ as r,a as t,b as i,c}from"./qqgroup2_qr.3de52c17.js";import{_ as d,o as h,c as u,a as s,b as n,e as a,d as o,r as l}from"./app.391b0e4e.js";var p="/images/dingding_group_search.png";const _={},g=s("h1",{id:"contact-us",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#contact-us","aria-hidden":"true"},"#"),a(" Contact Us")],-1),m=s("h3",{id:"issues",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#issues","aria-hidden":"true"},"#"),a(" Issues")],-1),f=a("Questions about how to use Arthas and opinions can be directly raised in issues\uFF1A "),b={href:"https://github.com/alibaba/arthas/issues",target:"_blank",rel:"noopener noreferrer"},k=a("https://github.com/alibaba/arthas/issues"),x=o('<h3 id="dingding-group" tabindex="-1"><a class="header-anchor" href="#dingding-group" aria-hidden="true">#</a> DingDing Group</h3><ul><li>Arthas open source discussion Group\uFF1A 21965291 \uFF0CYou can join by searching for group number\u3002</li></ul><p><img src="'+r+'" alt=""></p><ul><li>Arthas open source discussion Group 2\uFF1A 30707824 \uFF0CYou can join by searching for group number\u3002</li></ul><p><img src="'+t+'" alt=""></p><h3 id="instructions-for-installing-dingtalk" tabindex="-1"><a class="header-anchor" href="#instructions-for-installing-dingtalk" aria-hidden="true">#</a> Instructions for Installing DingTalk</h3>',6),w=a("DingTalk can be downloaded from: "),Q={href:"https://page.dingtalk.com/wow/dingtalk/act/en-download",target:"_blank",rel:"noopener noreferrer"},A=a("https://www.dingtalk.com/en"),v=o('<p>After installing you can search for group number and join it.</p><p><img src="'+p+'" alt=""></p><h3 id="qq-group" tabindex="-1"><a class="header-anchor" href="#qq-group" aria-hidden="true">#</a> QQ Group</h3><p>Arthas open source discussion QQ group\uFF1A916328269</p><p><img src="'+i+'" alt=""></p><p>Arthas open source discussion QQ group2\uFF1A854625984</p><p><img src="'+c+'" alt=""></p>',7);function I(q,y){const e=l("ExternalLinkIcon");return h(),u("div",null,[g,m,s("p",null,[f,s("a",b,[k,n(e)])]),x,s("p",null,[w,s("a",Q,[A,n(e)])]),v])}var N=d(_,[["render",I],["__file","contact-us.html.vue"]]);export{N as default};
import{_ as r,a as t,b as i,c}from"./qqgroup2_qr.3de52c17.js";import{_ as d,o as h,c as u,a as s,b as n,e as a,d as o,r as l}from"./app.bd2aade7.js";var p="/images/dingding_group_search.png";const _={},g=s("h1",{id:"contact-us",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#contact-us","aria-hidden":"true"},"#"),a(" Contact Us")],-1),m=s("h3",{id:"issues",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#issues","aria-hidden":"true"},"#"),a(" Issues")],-1),f=a("Questions about how to use Arthas and opinions can be directly raised in issues\uFF1A "),b={href:"https://github.com/alibaba/arthas/issues",target:"_blank",rel:"noopener noreferrer"},k=a("https://github.com/alibaba/arthas/issues"),x=o('<h3 id="dingding-group" tabindex="-1"><a class="header-anchor" href="#dingding-group" aria-hidden="true">#</a> DingDing Group</h3><ul><li>Arthas open source discussion Group\uFF1A 21965291 \uFF0CYou can join by searching for group number\u3002</li></ul><p><img src="'+r+'" alt=""></p><ul><li>Arthas open source discussion Group 2\uFF1A 30707824 \uFF0CYou can join by searching for group number\u3002</li></ul><p><img src="'+t+'" alt=""></p><h3 id="instructions-for-installing-dingtalk" tabindex="-1"><a class="header-anchor" href="#instructions-for-installing-dingtalk" aria-hidden="true">#</a> Instructions for Installing DingTalk</h3>',6),w=a("DingTalk can be downloaded from: "),Q={href:"https://page.dingtalk.com/wow/dingtalk/act/en-download",target:"_blank",rel:"noopener noreferrer"},A=a("https://www.dingtalk.com/en"),v=o('<p>After installing you can search for group number and join it.</p><p><img src="'+p+'" alt=""></p><h3 id="qq-group" tabindex="-1"><a class="header-anchor" href="#qq-group" aria-hidden="true">#</a> QQ Group</h3><p>Arthas open source discussion QQ group\uFF1A916328269</p><p><img src="'+i+'" alt=""></p><p>Arthas open source discussion QQ group2\uFF1A854625984</p><p><img src="'+c+'" alt=""></p>',7);function I(q,y){const e=l("ExternalLinkIcon");return h(),u("div",null,[g,m,s("p",null,[f,s("a",b,[k,n(e)])]),x,s("p",null,[w,s("a",Q,[A,n(e)])]),v])}var N=d(_,[["render",I],["__file","contact-us.html.vue"]]);export{N as default};
@@ -1 +1 @@
import{_ as r,a as i,b as o,c as n}from"./qqgroup2_qr.3de52c17.js";import{_ as h,o as c,c as d,a as e,b as t,e as a,d as _,r as l}from"./app.391b0e4e.js";var p="/images/qrcode_gongzhonghao.jpg";const u={},m=e("h1",{id:"\u8054\u7CFB\u6211\u4EEC",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#\u8054\u7CFB\u6211\u4EEC","aria-hidden":"true"},"#"),a(" \u8054\u7CFB\u6211\u4EEC")],-1),f=e("h3",{id:"\u62DB\u8058",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#\u62DB\u8058","aria-hidden":"true"},"#"),a(" \u62DB\u8058")],-1),b={href:"https://mp.weixin.qq.com/s/XQv8GnqGT3pzceVwzeiy-A",target:"_blank",rel:"noopener noreferrer"},g=a("\u671F\u5F85\u4F60\u7684\u52A0\u5165"),x=e("h3",{id:"issues",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#issues","aria-hidden":"true"},"#"),a(" Issues")],-1),q=a("\u4F7F\u7528\u7591\u95EE\uFF0C\u610F\u89C1\u53EF\u4EE5\u76F4\u63A5\u5728 Issues \u91CC\u63D0\u51FA\uFF1A "),Q={href:"https://github.com/alibaba/arthas/issues",target:"_blank",rel:"noopener noreferrer"},k=a("https://github.com/alibaba/arthas/issues"),v=_('<h3 id="\u5FAE\u4FE1\u516C\u4F17\u53F7" tabindex="-1"><a class="header-anchor" href="#\u5FAE\u4FE1\u516C\u4F17\u53F7" aria-hidden="true">#</a> \u5FAE\u4FE1\u516C\u4F17\u53F7</h3><p>\u6B22\u8FCE\u5173\u6CE8\u516C\u4F17\u53F7\uFF0C\u83B7\u53D6 Arthas \u9879\u76EE\u7684\u4FE1\u606F\u3001\u6E90\u7801\u5206\u6790\u3001\u6848\u4F8B\u5B9E\u8DF5\u3002</p><p><img src="'+p+'" alt=""></p><h3 id="\u9489\u9489\u7FA4" tabindex="-1"><a class="header-anchor" href="#\u9489\u9489\u7FA4" aria-hidden="true">#</a> \u9489\u9489\u7FA4</h3><ul><li>Arthas \u5F00\u6E90\u4EA4\u6D41\u9489\u9489\u7FA4\uFF1A 21965291 \uFF0C\u641C\u7D22\u7FA4\u53F7\u5373\u53EF\u52A0\u5165\u3002</li></ul><p><img src="'+r+'" alt=""></p><ul><li>Arthas \u5F00\u6E90\u4EA4\u6D41\u9489\u9489\u7FA4 2\uFF1A 30707824 \uFF0C\u641C\u7D22\u7FA4\u53F7\u5373\u53EF\u52A0\u5165\u3002</li></ul><p><img src="'+i+'" alt=""></p><h3 id="qq-\u7FA4" tabindex="-1"><a class="header-anchor" href="#qq-\u7FA4" aria-hidden="true">#</a> QQ \u7FA4</h3><p>Arthas \u5F00\u6E90\u4EA4\u6D41 QQ \u7FA4\uFF1A 916328269</p><p><img src="'+o+'" alt=""></p><p>Arthas \u5F00\u6E90\u4EA4\u6D41 QQ \u7FA4 2\uFF1A 854625984</p><p><img src="'+n+'" alt=""></p>',13);function A(V,I){const s=l("ExternalLinkIcon");return c(),d("div",null,[m,f,e("ul",null,[e("li",null,[e("a",b,[g,t(s)])])]),x,e("p",null,[q,e("a",Q,[k,t(s)])]),v])}var B=h(u,[["render",A],["__file","contact-us.html.vue"]]);export{B as default};
import{_ as r,a as i,b as o,c as n}from"./qqgroup2_qr.3de52c17.js";import{_ as h,o as c,c as d,a as e,b as t,e as a,d as _,r as l}from"./app.bd2aade7.js";var p="/images/qrcode_gongzhonghao.jpg";const u={},m=e("h1",{id:"\u8054\u7CFB\u6211\u4EEC",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#\u8054\u7CFB\u6211\u4EEC","aria-hidden":"true"},"#"),a(" \u8054\u7CFB\u6211\u4EEC")],-1),f=e("h3",{id:"\u62DB\u8058",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#\u62DB\u8058","aria-hidden":"true"},"#"),a(" \u62DB\u8058")],-1),b={href:"https://mp.weixin.qq.com/s/XQv8GnqGT3pzceVwzeiy-A",target:"_blank",rel:"noopener noreferrer"},g=a("\u671F\u5F85\u4F60\u7684\u52A0\u5165"),x=e("h3",{id:"issues",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#issues","aria-hidden":"true"},"#"),a(" Issues")],-1),q=a("\u4F7F\u7528\u7591\u95EE\uFF0C\u610F\u89C1\u53EF\u4EE5\u76F4\u63A5\u5728 Issues \u91CC\u63D0\u51FA\uFF1A "),Q={href:"https://github.com/alibaba/arthas/issues",target:"_blank",rel:"noopener noreferrer"},k=a("https://github.com/alibaba/arthas/issues"),v=_('<h3 id="\u5FAE\u4FE1\u516C\u4F17\u53F7" tabindex="-1"><a class="header-anchor" href="#\u5FAE\u4FE1\u516C\u4F17\u53F7" aria-hidden="true">#</a> \u5FAE\u4FE1\u516C\u4F17\u53F7</h3><p>\u6B22\u8FCE\u5173\u6CE8\u516C\u4F17\u53F7\uFF0C\u83B7\u53D6 Arthas \u9879\u76EE\u7684\u4FE1\u606F\u3001\u6E90\u7801\u5206\u6790\u3001\u6848\u4F8B\u5B9E\u8DF5\u3002</p><p><img src="'+p+'" alt=""></p><h3 id="\u9489\u9489\u7FA4" tabindex="-1"><a class="header-anchor" href="#\u9489\u9489\u7FA4" aria-hidden="true">#</a> \u9489\u9489\u7FA4</h3><ul><li>Arthas \u5F00\u6E90\u4EA4\u6D41\u9489\u9489\u7FA4\uFF1A 21965291 \uFF0C\u641C\u7D22\u7FA4\u53F7\u5373\u53EF\u52A0\u5165\u3002</li></ul><p><img src="'+r+'" alt=""></p><ul><li>Arthas \u5F00\u6E90\u4EA4\u6D41\u9489\u9489\u7FA4 2\uFF1A 30707824 \uFF0C\u641C\u7D22\u7FA4\u53F7\u5373\u53EF\u52A0\u5165\u3002</li></ul><p><img src="'+i+'" alt=""></p><h3 id="qq-\u7FA4" tabindex="-1"><a class="header-anchor" href="#qq-\u7FA4" aria-hidden="true">#</a> QQ \u7FA4</h3><p>Arthas \u5F00\u6E90\u4EA4\u6D41 QQ \u7FA4\uFF1A 916328269</p><p><img src="'+o+'" alt=""></p><p>Arthas \u5F00\u6E90\u4EA4\u6D41 QQ \u7FA4 2\uFF1A 854625984</p><p><img src="'+n+'" alt=""></p>',13);function A(V,I){const s=l("ExternalLinkIcon");return c(),d("div",null,[m,f,e("ul",null,[e("li",null,[e("a",b,[g,t(s)])])]),x,e("p",null,[q,e("a",Q,[k,t(s)])]),v])}var B=h(u,[["render",A],["__file","contact-us.html.vue"]]);export{B as default};
@@ -1,4 +1,4 @@
import{_ as n}from"./dashboard.12e8f42a.js";import{_ as d,o as l,c as s,a as e,b as t,e as a,d as r,r as c}from"./app.391b0e4e.js";const o={},h=e("h1",{id:"dashboard",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#dashboard","aria-hidden":"true"},"#"),a(" dashboard")],-1),m={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-dashboard",target:"_blank",rel:"noopener noreferrer"},v=e("code",null,"dashboard",-1),u=a("\u5728\u7EBF\u6559\u7A0B"),b=r(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u5F53\u524D\u7CFB\u7EDF\u7684\u5B9E\u65F6\u6570\u636E\u9762\u677F\uFF0C\u6309 ctrl+c \u9000\u51FA\u3002</p></div><p>\u5F53\u8FD0\u884C\u5728 Ali-tomcat \u65F6\uFF0C\u4F1A\u663E\u793A\u5F53\u524D tomcat \u7684\u5B9E\u65F6\u4FE1\u606F\uFF0C\u5982 HTTP \u8BF7\u6C42\u7684 qps, rt, \u9519\u8BEF\u6570, \u7EBF\u7A0B\u6C60\u4FE1\u606F\u7B49\u7B49\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;">[i:]</td><td style="text-align:left;">\u5237\u65B0\u5B9E\u65F6\u6570\u636E\u7684\u65F6\u95F4\u95F4\u9694 (ms)\uFF0C\u9ED8\u8BA4 5000ms</td></tr><tr><td style="text-align:right;">[n:]</td><td style="text-align:left;">\u5237\u65B0\u5B9E\u65F6\u6570\u636E\u7684\u6B21\u6570</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ dashboard
import{_ as n}from"./dashboard.12e8f42a.js";import{_ as d,o as l,c as s,a as e,b as t,e as a,d as r,r as c}from"./app.bd2aade7.js";const o={},h=e("h1",{id:"dashboard",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#dashboard","aria-hidden":"true"},"#"),a(" dashboard")],-1),m={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-dashboard",target:"_blank",rel:"noopener noreferrer"},v=e("code",null,"dashboard",-1),u=a("\u5728\u7EBF\u6559\u7A0B"),b=r(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u5F53\u524D\u7CFB\u7EDF\u7684\u5B9E\u65F6\u6570\u636E\u9762\u677F\uFF0C\u6309 ctrl+c \u9000\u51FA\u3002</p></div><p>\u5F53\u8FD0\u884C\u5728 Ali-tomcat \u65F6\uFF0C\u4F1A\u663E\u793A\u5F53\u524D tomcat \u7684\u5B9E\u65F6\u4FE1\u606F\uFF0C\u5982 HTTP \u8BF7\u6C42\u7684 qps, rt, \u9519\u8BEF\u6570, \u7EBF\u7A0B\u6C60\u4FE1\u606F\u7B49\u7B49\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;">[i:]</td><td style="text-align:left;">\u5237\u65B0\u5B9E\u65F6\u6570\u636E\u7684\u65F6\u95F4\u95F4\u9694 (ms)\uFF0C\u9ED8\u8BA4 5000ms</td></tr><tr><td style="text-align:right;">[n:]</td><td style="text-align:left;">\u5237\u65B0\u5B9E\u65F6\u6570\u636E\u7684\u6B21\u6570</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ dashboard
ID NAME GROUP PRIORITY STATE %CPU DELTA_TIME TIME INTERRUPTE DAEMON
-1 C2 CompilerThread0 - -1 - 1.55 0.077 0:8.684 false true
53 Timer-for-arthas-dashboard-07b system 5 RUNNABLE 0.08 0.004 0:0.004 false true
@@ -1,4 +1,4 @@
import{_ as n}from"./dashboard.12e8f42a.js";import{_ as s,o as r,c as d,a as e,b as i,e as a,d as l,r as o}from"./app.391b0e4e.js";const h={},c=e("h1",{id:"dashboard",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#dashboard","aria-hidden":"true"},"#"),a(" dashboard")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-dashboard",target:"_blank",rel:"noopener noreferrer"},m=e("code",null,"dashboard",-1),v=a(" online tutorial"),p=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"TIP"),e("p",null,[a("This is the real time statistics dashboard for the current system, press "),e("code",null,"Ctrl+C"),a(" to exit.")])],-1),b=a("When running in Apache Tomcat Alibaba edition, the dashboard will also present the real time statistics of the tomcat, including "),f={href:"https://en.wikipedia.org/wiki/Queries_per_second",target:"_blank",rel:"noopener noreferrer"},g=a("QPS"),_=a(", RT, error counts, and thread pool, etc."),T=l(`<h3 id="options" tabindex="-1"><a class="header-anchor" href="#options" aria-hidden="true">#</a> Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;">[i:]</td><td style="text-align:left;">The interval (in ms) between two executions, default is 5000 ms.</td></tr><tr><td style="text-align:right;">[n:]</td><td style="text-align:left;">The number of times this command will be executed.</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ dashboard
import{_ as n}from"./dashboard.12e8f42a.js";import{_ as s,o as r,c as d,a as e,b as i,e as a,d as l,r as o}from"./app.bd2aade7.js";const h={},c=e("h1",{id:"dashboard",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#dashboard","aria-hidden":"true"},"#"),a(" dashboard")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-dashboard",target:"_blank",rel:"noopener noreferrer"},m=e("code",null,"dashboard",-1),v=a(" online tutorial"),p=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"TIP"),e("p",null,[a("This is the real time statistics dashboard for the current system, press "),e("code",null,"Ctrl+C"),a(" to exit.")])],-1),b=a("When running in Apache Tomcat Alibaba edition, the dashboard will also present the real time statistics of the tomcat, including "),f={href:"https://en.wikipedia.org/wiki/Queries_per_second",target:"_blank",rel:"noopener noreferrer"},g=a("QPS"),_=a(", RT, error counts, and thread pool, etc."),T=l(`<h3 id="options" tabindex="-1"><a class="header-anchor" href="#options" aria-hidden="true">#</a> Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;">[i:]</td><td style="text-align:left;">The interval (in ms) between two executions, default is 5000 ms.</td></tr><tr><td style="text-align:right;">[n:]</td><td style="text-align:left;">The number of times this command will be executed.</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ dashboard
ID NAME GROUP PRIORITY STATE %CPU DELTA_TIME TIME INTERRUPTE DAEMON
-1 C2 CompilerThread0 - -1 - 1.55 0.077 0:8.684 false true
53 Timer-for-arthas-dashboard-07b system 5 RUNNABLE 0.08 0.004 0:0.004 false true
@@ -1,4 +1,4 @@
import{_ as n,o as e,c as t,a,b as i,d as p,e as o,r as c}from"./app.391b0e4e.js";const l={},r=p(`<h1 id="docker" tabindex="-1"><a class="header-anchor" href="#docker" aria-hidden="true">#</a> Docker</h1><h2 id="\u5728-docker-\u91CC\u4F7F\u7528-jdk" tabindex="-1"><a class="header-anchor" href="#\u5728-docker-\u91CC\u4F7F\u7528-jdk" aria-hidden="true">#</a> \u5728 Docker \u91CC\u4F7F\u7528 JDK</h2><p>\u5F88\u591A\u65F6\u5019\uFF0C\u5E94\u7528\u5728 docker \u91CC\u51FA\u73B0 arthas \u65E0\u6CD5\u5DE5\u4F5C\u7684\u95EE\u9898\uFF0C\u662F\u56E0\u4E3A\u5E94\u7528\u6CA1\u6709\u5B89\u88C5 JDK \uFF0C\u800C\u662F\u5B89\u88C5\u4E86 JRE \u3002\u5982\u679C\u53EA\u5B89\u88C5\u4E86 JRE\uFF0C\u5219\u4F1A\u7F3A\u5C11\u5F88\u591A JAVA \u7684\u547D\u4EE4\u884C\u5DE5\u5177\u548C\u7C7B\u5E93\uFF0CArthas \u4E5F\u6CA1\u529E\u6CD5\u6B63\u5E38\u5DE5\u4F5C\u3002\u4E0B\u9762\u4ECB\u7ECD\u4E24\u79CD\u5E38\u89C1\u7684\u5728 Docker \u91CC\u4F7F\u7528 JDK \u7684\u65B9\u5F0F\u3002</p><h3 id="\u4F7F\u7528\u516C\u5F00\u7684-jdk-\u955C\u50CF" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u516C\u5F00\u7684-jdk-\u955C\u50CF" aria-hidden="true">#</a> \u4F7F\u7528\u516C\u5F00\u7684 JDK \u955C\u50CF</h3><ul><li>https://hub.docker.com/_/openjdk/</li></ul><p>\u6BD4\u5982\uFF1A</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>FROM openjdk:8-jdk
import{_ as n,o as e,c as t,a,b as i,d as p,e as o,r as c}from"./app.bd2aade7.js";const l={},r=p(`<h1 id="docker" tabindex="-1"><a class="header-anchor" href="#docker" aria-hidden="true">#</a> Docker</h1><h2 id="\u5728-docker-\u91CC\u4F7F\u7528-jdk" tabindex="-1"><a class="header-anchor" href="#\u5728-docker-\u91CC\u4F7F\u7528-jdk" aria-hidden="true">#</a> \u5728 Docker \u91CC\u4F7F\u7528 JDK</h2><p>\u5F88\u591A\u65F6\u5019\uFF0C\u5E94\u7528\u5728 docker \u91CC\u51FA\u73B0 arthas \u65E0\u6CD5\u5DE5\u4F5C\u7684\u95EE\u9898\uFF0C\u662F\u56E0\u4E3A\u5E94\u7528\u6CA1\u6709\u5B89\u88C5 JDK \uFF0C\u800C\u662F\u5B89\u88C5\u4E86 JRE \u3002\u5982\u679C\u53EA\u5B89\u88C5\u4E86 JRE\uFF0C\u5219\u4F1A\u7F3A\u5C11\u5F88\u591A JAVA \u7684\u547D\u4EE4\u884C\u5DE5\u5177\u548C\u7C7B\u5E93\uFF0CArthas \u4E5F\u6CA1\u529E\u6CD5\u6B63\u5E38\u5DE5\u4F5C\u3002\u4E0B\u9762\u4ECB\u7ECD\u4E24\u79CD\u5E38\u89C1\u7684\u5728 Docker \u91CC\u4F7F\u7528 JDK \u7684\u65B9\u5F0F\u3002</p><h3 id="\u4F7F\u7528\u516C\u5F00\u7684-jdk-\u955C\u50CF" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u516C\u5F00\u7684-jdk-\u955C\u50CF" aria-hidden="true">#</a> \u4F7F\u7528\u516C\u5F00\u7684 JDK \u955C\u50CF</h3><ul><li>https://hub.docker.com/_/openjdk/</li></ul><p>\u6BD4\u5982\uFF1A</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>FROM openjdk:8-jdk
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>\u6216\u8005\uFF1A</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>FROM openjdk:8-jdk-alpine
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="\u901A\u8FC7\u5305\u7BA1\u7406\u8F6F\u4EF6\u6765\u5B89\u88C5" tabindex="-1"><a class="header-anchor" href="#\u901A\u8FC7\u5305\u7BA1\u7406\u8F6F\u4EF6\u6765\u5B89\u88C5" aria-hidden="true">#</a> \u901A\u8FC7\u5305\u7BA1\u7406\u8F6F\u4EF6\u6765\u5B89\u88C5</h3><p>\u6BD4\u5982\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token comment"># Install OpenJDK-8</span>
RUN <span class="token function">apt-get</span> update <span class="token operator">&amp;&amp;</span> <span class="token punctuation">\\</span>
@@ -1,4 +1,4 @@
import{_ as n,o as e,c as t,a,b as i,d as o,e as c,r as l}from"./app.391b0e4e.js";const p={},r=o(`<h1 id="docker" tabindex="-1"><a class="header-anchor" href="#docker" aria-hidden="true">#</a> Docker</h1><h2 id="use-jdk-in-docker" tabindex="-1"><a class="header-anchor" href="#use-jdk-in-docker" aria-hidden="true">#</a> Use JDK in Docker</h2><p>Many times, the problem that arthas can&#39;t work with the application in docker is because the docker does not install JDK, but installs JRE. If only JRE is installed, many JAVA command line tools and class libraries will be missing, and Arthas will not work properly. Here are two common ways to use JDK in Docker.</p><h3 id="use-public-jdk-image" tabindex="-1"><a class="header-anchor" href="#use-public-jdk-image" aria-hidden="true">#</a> Use public JDK image</h3><ul><li>https://hub.docker.com/_/openjdk/</li></ul><p>such as:</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>FROM openjdk:8-jdk
import{_ as n,o as e,c as t,a,b as i,d as o,e as c,r as l}from"./app.bd2aade7.js";const p={},r=o(`<h1 id="docker" tabindex="-1"><a class="header-anchor" href="#docker" aria-hidden="true">#</a> Docker</h1><h2 id="use-jdk-in-docker" tabindex="-1"><a class="header-anchor" href="#use-jdk-in-docker" aria-hidden="true">#</a> Use JDK in Docker</h2><p>Many times, the problem that arthas can&#39;t work with the application in docker is because the docker does not install JDK, but installs JRE. If only JRE is installed, many JAVA command line tools and class libraries will be missing, and Arthas will not work properly. Here are two common ways to use JDK in Docker.</p><h3 id="use-public-jdk-image" tabindex="-1"><a class="header-anchor" href="#use-public-jdk-image" aria-hidden="true">#</a> Use public JDK image</h3><ul><li>https://hub.docker.com/_/openjdk/</li></ul><p>such as:</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>FROM openjdk:8-jdk
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>or:</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>FROM openjdk:8-jdk-alpine
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="install-via-package-management-software" tabindex="-1"><a class="header-anchor" href="#install-via-package-management-software" aria-hidden="true">#</a> Install via package management software</h3><p>such as:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token comment"># Install OpenJDK-8</span>
RUN <span class="token function">apt-get</span> update <span class="token operator">&amp;&amp;</span> <span class="token punctuation">\\</span>
@@ -1,4 +1,4 @@
import{_ as n,o as d,c as i,a,b as r,d as t,e,r as o}from"./app.391b0e4e.js";const h={},l=t('<h1 id="\u4E0B\u8F7D" tabindex="-1"><a class="header-anchor" href="#\u4E0B\u8F7D" aria-hidden="true">#</a> \u4E0B\u8F7D</h1><h2 id="\u4E0B\u8F7D\u5168\u91CF\u5305" tabindex="-1"><a class="header-anchor" href="#\u4E0B\u8F7D\u5168\u91CF\u5305" aria-hidden="true">#</a> \u4E0B\u8F7D\u5168\u91CF\u5305</h2><h3 id="\u4ECE-maven-\u4ED3\u5E93\u4E0B\u8F7D" tabindex="-1"><a class="header-anchor" href="#\u4ECE-maven-\u4ED3\u5E93\u4E0B\u8F7D" aria-hidden="true">#</a> \u4ECE Maven \u4ED3\u5E93\u4E0B\u8F7D</h3>',3),c=e("\u6700\u65B0\u7248\u672C\uFF0C\u70B9\u51FB\u4E0B\u8F7D\uFF1A"),u={href:"https://arthas.aliyun.com/download/latest_version?mirror=aliyun",target:"_blank",rel:"noopener noreferrer"},b=a("img",{src:"https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square",alt:"",title:"Arthas"},null,-1),v=a("h3",{id:"\u4ECE-github-releases-\u9875\u4E0B\u8F7D",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#\u4ECE-github-releases-\u9875\u4E0B\u8F7D","aria-hidden":"true"},"#"),e(" \u4ECE Github Releases \u9875\u4E0B\u8F7D")],-1),_={href:"https://github.com/alibaba/arthas/releases",target:"_blank",rel:"noopener noreferrer"},m=e("https://github.com/alibaba/arthas/releases"),p=t(`<h3 id="\u7528-as-sh-\u542F\u52A8" tabindex="-1"><a class="header-anchor" href="#\u7528-as-sh-\u542F\u52A8" aria-hidden="true">#</a> \u7528 as.sh \u542F\u52A8</h3><p>\u89E3\u538B\u540E\uFF0C\u5728\u6587\u4EF6\u5939\u91CC\u6709<code>as.sh</code>\uFF0C\u76F4\u63A5\u7528<code>./as.sh</code>\u7684\u65B9\u5F0F\u542F\u52A8\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>./as.sh
import{_ as n,o as d,c as i,a,b as r,d as t,e,r as o}from"./app.bd2aade7.js";const h={},l=t('<h1 id="\u4E0B\u8F7D" tabindex="-1"><a class="header-anchor" href="#\u4E0B\u8F7D" aria-hidden="true">#</a> \u4E0B\u8F7D</h1><h2 id="\u4E0B\u8F7D\u5168\u91CF\u5305" tabindex="-1"><a class="header-anchor" href="#\u4E0B\u8F7D\u5168\u91CF\u5305" aria-hidden="true">#</a> \u4E0B\u8F7D\u5168\u91CF\u5305</h2><h3 id="\u4ECE-maven-\u4ED3\u5E93\u4E0B\u8F7D" tabindex="-1"><a class="header-anchor" href="#\u4ECE-maven-\u4ED3\u5E93\u4E0B\u8F7D" aria-hidden="true">#</a> \u4ECE Maven \u4ED3\u5E93\u4E0B\u8F7D</h3>',3),c=e("\u6700\u65B0\u7248\u672C\uFF0C\u70B9\u51FB\u4E0B\u8F7D\uFF1A"),u={href:"https://arthas.aliyun.com/download/latest_version?mirror=aliyun",target:"_blank",rel:"noopener noreferrer"},b=a("img",{src:"https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square",alt:"",title:"Arthas"},null,-1),v=a("h3",{id:"\u4ECE-github-releases-\u9875\u4E0B\u8F7D",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#\u4ECE-github-releases-\u9875\u4E0B\u8F7D","aria-hidden":"true"},"#"),e(" \u4ECE Github Releases \u9875\u4E0B\u8F7D")],-1),_={href:"https://github.com/alibaba/arthas/releases",target:"_blank",rel:"noopener noreferrer"},m=e("https://github.com/alibaba/arthas/releases"),p=t(`<h3 id="\u7528-as-sh-\u542F\u52A8" tabindex="-1"><a class="header-anchor" href="#\u7528-as-sh-\u542F\u52A8" aria-hidden="true">#</a> \u7528 as.sh \u542F\u52A8</h3><p>\u89E3\u538B\u540E\uFF0C\u5728\u6587\u4EF6\u5939\u91CC\u6709<code>as.sh</code>\uFF0C\u76F4\u63A5\u7528<code>./as.sh</code>\u7684\u65B9\u5F0F\u542F\u52A8\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>./as.sh
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>\u6253\u5370\u5E2E\u52A9\u4FE1\u606F\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>./as.sh -h
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="\u7528-arthas-boot-\u542F\u52A8" tabindex="-1"><a class="header-anchor" href="#\u7528-arthas-boot-\u542F\u52A8" aria-hidden="true">#</a> \u7528 arthas-boot \u542F\u52A8</h3><p>\u6216\u8005\u5728\u89E3\u538B\u540E\uFF0C\u5728\u6587\u4EF6\u5939\u91CC\u6709<code>arthas-boot.jar</code>\uFF0C\u76F4\u63A5\u7528<code>java -jar</code>\u7684\u65B9\u5F0F\u542F\u52A8\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>java -jar arthas-boot.jar
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>\u6253\u5370\u5E2E\u52A9\u4FE1\u606F\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>java -jar arthas-boot.jar -h
@@ -1,4 +1,4 @@
import{_ as r,o as t,c as d,a,b as n,d as o,e,r as i}from"./app.391b0e4e.js";const l={},h=o('<h1 id="download" tabindex="-1"><a class="header-anchor" href="#download" aria-hidden="true">#</a> Download</h1><h2 id="download-full-package" tabindex="-1"><a class="header-anchor" href="#download-full-package" aria-hidden="true">#</a> Download full package</h2><h3 id="download-from-maven-central" tabindex="-1"><a class="header-anchor" href="#download-from-maven-central" aria-hidden="true">#</a> Download from maven central</h3>',3),c=e("Latest Version, Click To Download: "),u={href:"https://arthas.aliyun.com/download/latest_version",target:"_blank",rel:"noopener noreferrer"},m=a("img",{src:"https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square",alt:"",title:"Arthas"},null,-1),b=a("h3",{id:"download-from-github-releases",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#download-from-github-releases","aria-hidden":"true"},"#"),e(" Download from Github Releases")],-1),p={href:"https://github.com/alibaba/arthas/releases",target:"_blank",rel:"noopener noreferrer"},v=e("https://github.com/alibaba/arthas/releases"),_=o(`<h3 id="use-as-sh" tabindex="-1"><a class="header-anchor" href="#use-as-sh" aria-hidden="true">#</a> Use as.sh</h3><p>Download and unzip, find <code>as.sh</code> in the directory. Start it in bash:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>./as.sh
import{_ as r,o as t,c as d,a,b as n,d as o,e,r as i}from"./app.bd2aade7.js";const l={},h=o('<h1 id="download" tabindex="-1"><a class="header-anchor" href="#download" aria-hidden="true">#</a> Download</h1><h2 id="download-full-package" tabindex="-1"><a class="header-anchor" href="#download-full-package" aria-hidden="true">#</a> Download full package</h2><h3 id="download-from-maven-central" tabindex="-1"><a class="header-anchor" href="#download-from-maven-central" aria-hidden="true">#</a> Download from maven central</h3>',3),c=e("Latest Version, Click To Download: "),u={href:"https://arthas.aliyun.com/download/latest_version",target:"_blank",rel:"noopener noreferrer"},m=a("img",{src:"https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square",alt:"",title:"Arthas"},null,-1),b=a("h3",{id:"download-from-github-releases",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#download-from-github-releases","aria-hidden":"true"},"#"),e(" Download from Github Releases")],-1),p={href:"https://github.com/alibaba/arthas/releases",target:"_blank",rel:"noopener noreferrer"},v=e("https://github.com/alibaba/arthas/releases"),_=o(`<h3 id="use-as-sh" tabindex="-1"><a class="header-anchor" href="#use-as-sh" aria-hidden="true">#</a> Use as.sh</h3><p>Download and unzip, find <code>as.sh</code> in the directory. Start it in bash:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>./as.sh
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Print usage:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>./as.sh -h
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="use-arthas-boot-jar" tabindex="-1"><a class="header-anchor" href="#use-arthas-boot-jar" aria-hidden="true">#</a> Use arthas-boot.jar</h3><p>Download and unzip, find <code>arthas-boot.jar</code> in the directory. Start with <code>java</code> command:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>java -jar arthas-boot.jar
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Print usage:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>java -jar arthas-boot.jar -h
@@ -1,4 +1,4 @@
import{_ as i,o as c,c as d,a as e,b as a,w as o,e as s,d as r,r as n}from"./app.391b0e4e.js";const u={},p=e("h1",{id:"dump",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#dump","aria-hidden":"true"},"#"),s(" dump")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-dump",target:"_blank",rel:"noopener noreferrer"},m=e("code",null,"dump",-1),v=s(" online tutorial"),g=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"TIP"),e("p",null,"Dump the bytecode for the particular classes to the specified directory.")],-1),b=e("h3",{id:"options",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#options","aria-hidden":"true"},"#"),s(" Options")],-1),_=e("thead",null,[e("tr",null,[e("th",{style:{"text-align":"right"}},"Name"),e("th",{style:{"text-align":"left"}},"Specification")])],-1),f=e("tr",null,[e("td",{style:{"text-align":"right"}},[e("em",null,"class-pattern")]),e("td",{style:{"text-align":"left"}},"class name pattern")],-1),L=e("td",{style:{"text-align":"right"}},[e("code",null,"[c:]")],-1),k={style:{"text-align":"left"}},x=s("hashcode of the "),y=s("class loader"),C=s(" that loaded the target class"),A=e("tr",null,[e("td",{style:{"text-align":"right"}},[e("code",null,"[classLoaderClass:]")]),e("td",{style:{"text-align":"left"}},"The class name of the ClassLoader that executes the expression.")],-1),S=e("tr",null,[e("td",{style:{"text-align":"right"}},[e("code",null,"[d:]")]),e("td",{style:{"text-align":"left"}},"set the destination directory for class files")],-1),w=e("tr",null,[e("td",{style:{"text-align":"right"}},[e("code",null,"[E]")]),e("td",{style:{"text-align":"left"}},"turn on regex match, the default behavior is wild card match")],-1),O=r(`<h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ dump java.lang.String
import{_ as i,o as c,c as d,a as e,b as a,w as o,e as s,d as r,r as n}from"./app.bd2aade7.js";const u={},p=e("h1",{id:"dump",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#dump","aria-hidden":"true"},"#"),s(" dump")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-dump",target:"_blank",rel:"noopener noreferrer"},m=e("code",null,"dump",-1),v=s(" online tutorial"),g=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"TIP"),e("p",null,"Dump the bytecode for the particular classes to the specified directory.")],-1),b=e("h3",{id:"options",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#options","aria-hidden":"true"},"#"),s(" Options")],-1),_=e("thead",null,[e("tr",null,[e("th",{style:{"text-align":"right"}},"Name"),e("th",{style:{"text-align":"left"}},"Specification")])],-1),f=e("tr",null,[e("td",{style:{"text-align":"right"}},[e("em",null,"class-pattern")]),e("td",{style:{"text-align":"left"}},"class name pattern")],-1),L=e("td",{style:{"text-align":"right"}},[e("code",null,"[c:]")],-1),k={style:{"text-align":"left"}},x=s("hashcode of the "),y=s("class loader"),C=s(" that loaded the target class"),A=e("tr",null,[e("td",{style:{"text-align":"right"}},[e("code",null,"[classLoaderClass:]")]),e("td",{style:{"text-align":"left"}},"The class name of the ClassLoader that executes the expression.")],-1),S=e("tr",null,[e("td",{style:{"text-align":"right"}},[e("code",null,"[d:]")]),e("td",{style:{"text-align":"left"}},"set the destination directory for class files")],-1),w=e("tr",null,[e("td",{style:{"text-align":"right"}},[e("code",null,"[E]")]),e("td",{style:{"text-align":"left"}},"turn on regex match, the default behavior is wild card match")],-1),O=r(`<h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ dump java.lang.String
HASHCODE CLASSLOADER LOCATION
null /Users/admin/logs/arthas/classdump/java/lang/String.class
Affect<span class="token punctuation">(</span>row-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">119</span> ms.
@@ -1,4 +1,4 @@
import{_ as n,o as t,c as d,a,b as l,e as s,d as c,r as i}from"./app.391b0e4e.js";const r={},o=a("h1",{id:"dump",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#dump","aria-hidden":"true"},"#"),s(" dump")],-1),p={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-dump",target:"_blank",rel:"noopener noreferrer"},u=a("code",null,"dump",-1),m=s("\u5728\u7EBF\u6559\u7A0B"),h=c(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>dump \u5DF2\u52A0\u8F7D\u7C7B\u7684 bytecode \u5230\u7279\u5B9A\u76EE\u5F55</p></div><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;"><code>[c:]</code></td><td style="text-align:left;">\u7C7B\u6240\u5C5E ClassLoader \u7684 hashcode</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">\u6307\u5B9A\u6267\u884C\u8868\u8FBE\u5F0F\u7684 ClassLoader \u7684 class name</td></tr><tr><td style="text-align:right;"><code>[d:]</code></td><td style="text-align:left;">\u8BBE\u7F6E\u7C7B\u6587\u4EF6\u7684\u76EE\u6807\u76EE\u5F55</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></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ dump java.lang.String
import{_ as n,o as t,c as d,a,b as l,e as s,d as c,r as i}from"./app.bd2aade7.js";const r={},o=a("h1",{id:"dump",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#dump","aria-hidden":"true"},"#"),s(" dump")],-1),p={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-dump",target:"_blank",rel:"noopener noreferrer"},u=a("code",null,"dump",-1),m=s("\u5728\u7EBF\u6559\u7A0B"),h=c(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>dump \u5DF2\u52A0\u8F7D\u7C7B\u7684 bytecode \u5230\u7279\u5B9A\u76EE\u5F55</p></div><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;"><code>[c:]</code></td><td style="text-align:left;">\u7C7B\u6240\u5C5E ClassLoader \u7684 hashcode</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">\u6307\u5B9A\u6267\u884C\u8868\u8FBE\u5F0F\u7684 ClassLoader \u7684 class name</td></tr><tr><td style="text-align:right;"><code>[d:]</code></td><td style="text-align:left;">\u8BBE\u7F6E\u7C7B\u6587\u4EF6\u7684\u76EE\u6807\u76EE\u5F55</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></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ dump java.lang.String
HASHCODE CLASSLOADER LOCATION
null /Users/admin/logs/arthas/classdump/java/lang/String.class
Affect<span class="token punctuation">(</span>row-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">119</span> ms.
@@ -1,2 +1,2 @@
import{_ as s,o,c as t,a as e,b as c,e as a,d as r,r as l}from"./app.391b0e4e.js";const i={},d=e("h1",{id:"echo",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#echo","aria-hidden":"true"},"#"),a(" echo")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-echo",target:"_blank",rel:"noopener noreferrer"},_=e("code",null,"echo",-1),u=a("\u5728\u7EBF\u6559\u7A0B"),p=r(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u6253\u5370\u53C2\u6570\uFF0C\u548C linux \u91CC\u7684 echo \u547D\u4EE4\u7C7B\u4F3C\u3002</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token builtin class-name">echo</span> <span class="token string">&#39;hello&#39;</span>
import{_ as s,o,c as t,a as e,b as c,e as a,d as r,r as l}from"./app.bd2aade7.js";const i={},d=e("h1",{id:"echo",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#echo","aria-hidden":"true"},"#"),a(" echo")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-echo",target:"_blank",rel:"noopener noreferrer"},_=e("code",null,"echo",-1),u=a("\u5728\u7EBF\u6559\u7A0B"),p=r(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u6253\u5370\u53C2\u6570\uFF0C\u548C linux \u91CC\u7684 echo \u547D\u4EE4\u7C7B\u4F3C\u3002</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token builtin class-name">echo</span> <span class="token string">&#39;hello&#39;</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,2);function m(v,f){const n=l("ExternalLinkIcon");return o(),t("div",null,[d,e("p",null,[e("a",h,[_,u,c(n)])]),p])}var x=s(i,[["render",m],["__file","echo.html.vue"]]);export{x as default};
@@ -1,2 +1,2 @@
import{_ as n,o as s,c as o,a as e,b as c,e as a,d as r,r as i}from"./app.391b0e4e.js";const l={},d=e("h1",{id:"echo",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#echo","aria-hidden":"true"},"#"),a(" echo")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-echo",target:"_blank",rel:"noopener noreferrer"},_=e("code",null,"echo",-1),u=a(" online tutorial"),p=r(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>write arguments to the standard output.</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token builtin class-name">echo</span> <span class="token string">&#39;hello&#39;</span>
import{_ as n,o as s,c as o,a as e,b as c,e as a,d as r,r as i}from"./app.bd2aade7.js";const l={},d=e("h1",{id:"echo",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#echo","aria-hidden":"true"},"#"),a(" echo")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-echo",target:"_blank",rel:"noopener noreferrer"},_=e("code",null,"echo",-1),u=a(" online tutorial"),p=r(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>write arguments to the standard output.</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token builtin class-name">echo</span> <span class="token string">&#39;hello&#39;</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,2);function m(v,f){const t=i("ExternalLinkIcon");return s(),o("div",null,[d,e("p",null,[e("a",h,[_,u,c(t)])]),p])}var g=n(l,[["render",m],["__file","echo.html.vue"]]);export{g as default};
@@ -1,4 +1,4 @@
import{_ as d,o as h,c,a,b as t,w as n,e,d as r,r as i}from"./app.391b0e4e.js";const l={},_=a("h1",{id:"faq",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#faq","aria-hidden":"true"},"#"),e(" FAQ")],-1),u={class:"custom-container tip"},p=a("p",{class:"custom-container-title"},"\u63D0\u793A",-1),b=e("\u4E0D\u5728\u672C\u5217\u8868\u91CC\u7684\u95EE\u9898\uFF0C\u8BF7\u5230 issue \u91CC\u641C\u7D22\u3002 "),m={href:"https://github.com/alibaba/arthas/issues",target:"_blank",rel:"noopener noreferrer"},g=e("https://github.com/alibaba/arthas/issues"),f=a("h3",{id:"\u65E5\u5FD7\u6587\u4EF6\u5728\u54EA\u91CC",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#\u65E5\u5FD7\u6587\u4EF6\u5728\u54EA\u91CC","aria-hidden":"true"},"#"),e(" \u65E5\u5FD7\u6587\u4EF6\u5728\u54EA\u91CC\uFF1F")],-1),v=a("p",null,[e("\u65E5\u5FD7\u6587\u4EF6\u8DEF\u5F84\uFF1A "),a("code",null,"~/logs/arthas/arthas.log")],-1),k=a("h3",{id:"arthas-attach-\u4E4B\u540E\u5BF9\u539F\u8FDB\u7A0B\u6027\u80FD\u6709\u591A\u5927\u7684\u5F71\u54CD",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#arthas-attach-\u4E4B\u540E\u5BF9\u539F\u8FDB\u7A0B\u6027\u80FD\u6709\u591A\u5927\u7684\u5F71\u54CD","aria-hidden":"true"},"#"),e(" Arthas attach \u4E4B\u540E\u5BF9\u539F\u8FDB\u7A0B\u6027\u80FD\u6709\u591A\u5927\u7684\u5F71\u54CD")],-1),x={href:"https://github.com/alibaba/arthas/issues/44",target:"_blank",rel:"noopener noreferrer"},j=e("https://github.com/alibaba/arthas/issues/44"),w=a("h3",{id:"target-process-not-responding-or-hotspot-vm-not-loaded",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#target-process-not-responding-or-hotspot-vm-not-loaded","aria-hidden":"true"},"#"),e(" target process not responding or HotSpot VM not loaded")],-1),C=a("p",null,"com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded",-1),y=a("li",null,"\u68C0\u67E5\u5F53\u524D\u7528\u6237\u548C\u76EE\u6807 java \u8FDB\u7A0B\u662F\u5426\u4E00\u81F4\u3002\u5982\u679C\u4E0D\u4E00\u81F4\uFF0C\u5219\u5207\u6362\u5230\u540C\u4E00\u7528\u6237\u3002JVM \u53EA\u80FD attach \u540C\u6837\u7528\u6237\u4E0B\u7684 java \u8FDB\u7A0B\u3002",-1),V=a("li",null,[e("\u5C1D\u8BD5\u4F7F\u7528 "),a("code",null,"jstack -l $pid"),e("\uFF0C\u5982\u679C\u8FDB\u7A0B\u6CA1\u6709\u53CD\u5E94\uFF0C\u5219\u8BF4\u660E\u8FDB\u7A0B\u53EF\u80FD\u5047\u6B7B\uFF0C\u65E0\u6CD5\u54CD\u5E94 JVM attach \u4FE1\u53F7\u3002\u6240\u4EE5\u540C\u6837\u57FA\u4E8E attach \u673A\u5236\u7684 Arthas \u65E0\u6CD5\u5DE5\u4F5C\u3002\u5C1D\u8BD5\u4F7F\u7528"),a("code",null,"jmap"),e(" heapdump \u540E\u5206\u6790\u3002")],-1),q=e("\u5C1D\u8BD5\u6309"),A=e("quick-start"),L=e("\u91CC\u7684\u65B9\u5F0F attach math-game\u3002"),E=e("\u66F4\u591A\u60C5\u51B5\u53C2\u8003\uFF1A "),M={href:"https://github.com/alibaba/arthas/issues/347",target:"_blank",rel:"noopener noreferrer"},S=e("https://github.com/alibaba/arthas/issues/347"),B=r(`<h3 id="trace-watch-\u7B49\u547D\u4EE4\u80FD\u5426\u589E\u5F3A-jdk-\u91CC\u7684\u7C7B" tabindex="-1"><a class="header-anchor" href="#trace-watch-\u7B49\u547D\u4EE4\u80FD\u5426\u589E\u5F3A-jdk-\u91CC\u7684\u7C7B" aria-hidden="true">#</a> trace/watch \u7B49\u547D\u4EE4\u80FD\u5426\u589E\u5F3A jdk \u91CC\u7684\u7C7B\uFF1F</h3><p>\u9ED8\u8BA4\u60C5\u51B5\u4E0B\u4F1A\u8FC7\u6EE4\u6389<code>java.</code>\u5F00\u5934\u7684\u7C7B\u548C\u88AB<code>BootStrap ClassLoader</code>\u52A0\u8F7D\u7684\u7C7B\u3002\u53EF\u4EE5\u901A\u8FC7\u53C2\u6570\u5F00\u542F\u3002</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>options unsafe <span class="token boolean">true</span>
import{_ as d,o as h,c,a,b as t,w as n,e,d as r,r as i}from"./app.bd2aade7.js";const l={},_=a("h1",{id:"faq",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#faq","aria-hidden":"true"},"#"),e(" FAQ")],-1),u={class:"custom-container tip"},p=a("p",{class:"custom-container-title"},"\u63D0\u793A",-1),b=e("\u4E0D\u5728\u672C\u5217\u8868\u91CC\u7684\u95EE\u9898\uFF0C\u8BF7\u5230 issue \u91CC\u641C\u7D22\u3002 "),m={href:"https://github.com/alibaba/arthas/issues",target:"_blank",rel:"noopener noreferrer"},g=e("https://github.com/alibaba/arthas/issues"),f=a("h3",{id:"\u65E5\u5FD7\u6587\u4EF6\u5728\u54EA\u91CC",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#\u65E5\u5FD7\u6587\u4EF6\u5728\u54EA\u91CC","aria-hidden":"true"},"#"),e(" \u65E5\u5FD7\u6587\u4EF6\u5728\u54EA\u91CC\uFF1F")],-1),v=a("p",null,[e("\u65E5\u5FD7\u6587\u4EF6\u8DEF\u5F84\uFF1A "),a("code",null,"~/logs/arthas/arthas.log")],-1),k=a("h3",{id:"arthas-attach-\u4E4B\u540E\u5BF9\u539F\u8FDB\u7A0B\u6027\u80FD\u6709\u591A\u5927\u7684\u5F71\u54CD",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#arthas-attach-\u4E4B\u540E\u5BF9\u539F\u8FDB\u7A0B\u6027\u80FD\u6709\u591A\u5927\u7684\u5F71\u54CD","aria-hidden":"true"},"#"),e(" Arthas attach \u4E4B\u540E\u5BF9\u539F\u8FDB\u7A0B\u6027\u80FD\u6709\u591A\u5927\u7684\u5F71\u54CD")],-1),x={href:"https://github.com/alibaba/arthas/issues/44",target:"_blank",rel:"noopener noreferrer"},j=e("https://github.com/alibaba/arthas/issues/44"),w=a("h3",{id:"target-process-not-responding-or-hotspot-vm-not-loaded",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#target-process-not-responding-or-hotspot-vm-not-loaded","aria-hidden":"true"},"#"),e(" target process not responding or HotSpot VM not loaded")],-1),C=a("p",null,"com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded",-1),y=a("li",null,"\u68C0\u67E5\u5F53\u524D\u7528\u6237\u548C\u76EE\u6807 java \u8FDB\u7A0B\u662F\u5426\u4E00\u81F4\u3002\u5982\u679C\u4E0D\u4E00\u81F4\uFF0C\u5219\u5207\u6362\u5230\u540C\u4E00\u7528\u6237\u3002JVM \u53EA\u80FD attach \u540C\u6837\u7528\u6237\u4E0B\u7684 java \u8FDB\u7A0B\u3002",-1),V=a("li",null,[e("\u5C1D\u8BD5\u4F7F\u7528 "),a("code",null,"jstack -l $pid"),e("\uFF0C\u5982\u679C\u8FDB\u7A0B\u6CA1\u6709\u53CD\u5E94\uFF0C\u5219\u8BF4\u660E\u8FDB\u7A0B\u53EF\u80FD\u5047\u6B7B\uFF0C\u65E0\u6CD5\u54CD\u5E94 JVM attach \u4FE1\u53F7\u3002\u6240\u4EE5\u540C\u6837\u57FA\u4E8E attach \u673A\u5236\u7684 Arthas \u65E0\u6CD5\u5DE5\u4F5C\u3002\u5C1D\u8BD5\u4F7F\u7528"),a("code",null,"jmap"),e(" heapdump \u540E\u5206\u6790\u3002")],-1),q=e("\u5C1D\u8BD5\u6309"),A=e("quick-start"),L=e("\u91CC\u7684\u65B9\u5F0F attach math-game\u3002"),E=e("\u66F4\u591A\u60C5\u51B5\u53C2\u8003\uFF1A "),M={href:"https://github.com/alibaba/arthas/issues/347",target:"_blank",rel:"noopener noreferrer"},S=e("https://github.com/alibaba/arthas/issues/347"),B=r(`<h3 id="trace-watch-\u7B49\u547D\u4EE4\u80FD\u5426\u589E\u5F3A-jdk-\u91CC\u7684\u7C7B" tabindex="-1"><a class="header-anchor" href="#trace-watch-\u7B49\u547D\u4EE4\u80FD\u5426\u589E\u5F3A-jdk-\u91CC\u7684\u7C7B" aria-hidden="true">#</a> trace/watch \u7B49\u547D\u4EE4\u80FD\u5426\u589E\u5F3A jdk \u91CC\u7684\u7C7B\uFF1F</h3><p>\u9ED8\u8BA4\u60C5\u51B5\u4E0B\u4F1A\u8FC7\u6EE4\u6389<code>java.</code>\u5F00\u5934\u7684\u7C7B\u548C\u88AB<code>BootStrap ClassLoader</code>\u52A0\u8F7D\u7684\u7C7B\u3002\u53EF\u4EE5\u901A\u8FC7\u53C2\u6570\u5F00\u542F\u3002</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>options unsafe <span class="token boolean">true</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,3),I=e("\u66F4\u591A\u53C2\u8003 "),O=e("options"),F=r(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u901A\u8FC7 java.lang.instrument.Instrumentation#appendToBootstrapClassLoaderSearch append \u5230<code>Bootstrap ClassLoader</code>\u7684 jar \u5305\u9700\u8981\u5F00\u542F unsafe\u3002</p></div><h3 id="\u600E\u4E48\u4EE5json\u683C\u5F0F\u67E5\u770B\u7ED3\u679C" tabindex="-1"><a class="header-anchor" href="#\u600E\u4E48\u4EE5json\u683C\u5F0F\u67E5\u770B\u7ED3\u679C" aria-hidden="true">#</a> \u600E\u4E48\u4EE5<code>json</code>\u683C\u5F0F\u67E5\u770B\u7ED3\u679C</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>options json-format <span class="token boolean">true</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,3),N=e("\u66F4\u591A\u53C2\u8003 "),H=e("options"),J=a("h3",{id:"arthas-\u80FD\u5426\u8DDF\u8E2A-native-\u51FD\u6570",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#arthas-\u80FD\u5426\u8DDF\u8E2A-native-\u51FD\u6570","aria-hidden":"true"},"#"),e(" Arthas \u80FD\u5426\u8DDF\u8E2A native \u51FD\u6570")],-1),U=a("p",null,"\u4E0D\u80FD\u3002",-1),$=a("h3",{id:"\u80FD\u4E0D\u80FD\u67E5\u770B\u5185\u5B58\u91CC\u67D0\u4E2A\u53D8\u91CF\u7684\u503C",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#\u80FD\u4E0D\u80FD\u67E5\u770B\u5185\u5B58\u91CC\u67D0\u4E2A\u53D8\u91CF\u7684\u503C","aria-hidden":"true"},"#"),e(" \u80FD\u4E0D\u80FD\u67E5\u770B\u5185\u5B58\u91CC\u67D0\u4E2A\u53D8\u91CF\u7684\u503C")],-1),G=e("\u53EF\u4EE5\u4F7F\u7528"),Q=a("code",null,"vmtool",-1),R=e("\u547D\u4EE4\u3002"),T=e("\u53EF\u4EE5\u7528\u4E00\u4E9B\u6280\u5DE7\uFF0C\u7528"),z=a("code",null,"tt",-1),D=e("\u547D\u4EE4\u62E6\u622A\u5230\u5BF9\u8C61\uFF0C\u6216\u8005\u4ECE\u9759\u6001\u51FD\u6570\u91CC\u53D6\u5230\u5BF9\u8C61\u3002"),K=a("h3",{id:"\u65B9\u6CD5\u540C\u540D\u8FC7\u6EE4",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#\u65B9\u6CD5\u540C\u540D\u8FC7\u6EE4","aria-hidden":"true"},"#"),e(" \u65B9\u6CD5\u540C\u540D\u8FC7\u6EE4")],-1),P=e("\u540C\u540D\u65B9\u6CD5\u8FC7\u6EE4\u53EF\u4EE5\u901A\u8FC7\u5339\u914D\u8868\u8FBE\u5F0F,\u53EF\u4EE5\u4F7F\u7528"),W=e("\u8868\u8FBE\u5F0F\u6838\u5FC3\u53D8\u91CF"),X=e("\u4E2D\u6240\u6709\u53D8\u91CF\u4F5C\u4E3A\u5DF2\u77E5\u6761\u4EF6,\u53EF\u4EE5\u901A\u8FC7\u5224\u65AD\u53C2\u6570\u4E2A\u6570"),Y=a("code",null,"params.length ==1",-1),Z=e(", \u53C2\u6570\u7C7B\u578B"),aa=a("code",null,"params[0] instanceof java.lang.Integer",-1),ea=e("\u3001\u8FD4\u56DE\u503C\u7C7B\u578B "),ta=a("code",null,"returnObj instanceof java.util.List",-1),sa=e(" \u7B49\u7B49\u4E00\u79CD\u6216\u8005\u591A\u79CD\u7EC4\u5408\u8FDB\u884C\u8FC7\u6EE4\u3002"),oa=e("\u53EF\u4EE5\u4F7F\u7528 "),na=a("code",null,"-v",-1),ra=e(" \u67E5\u770B\u89C2\u5BDF\u5339\u914D\u8868\u8FBE\u5F0F\u7684\u6267\u884C\u7ED3\u679C "),ia={href:"https://github.com/alibaba/arthas/issues/1348",target:"_blank",rel:"noopener noreferrer"},da=e("https://github.com/alibaba/arthas/issues/1348"),ha=e("\u4F8B\u5B50"),ca=e("math-game"),la=r(`<div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">watch</span> demo.MathGame primeFactors <span class="token string">&#39;{params,returnObj,throwExp}&#39;</span> <span class="token string">&#39;params.length &gt;0 &amp;&amp; returnObj instanceof java.util.List&#39;</span> -v
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="\u600E\u4E48-watch\u3001trace-\u6784\u9020\u51FD\u6570" tabindex="-1"><a class="header-anchor" href="#\u600E\u4E48-watch\u3001trace-\u6784\u9020\u51FD\u6570" aria-hidden="true">#</a> \u600E\u4E48 watch\u3001trace \u6784\u9020\u51FD\u6570 \uFF1F</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">watch</span> demo.MathGame <span class="token operator">&lt;</span>init<span class="token operator">&gt;</span> <span class="token string">&#39;{params,returnObj,throwExp}&#39;</span> -v
@@ -1,4 +1,4 @@
import{_ as h,o as c,c as d,a as e,b as a,w as n,e as t,d as r,r as i}from"./app.391b0e4e.js";const l={},u=e("h1",{id:"faq",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#faq","aria-hidden":"true"},"#"),t(" FAQ")],-1),p={class:"custom-container tip"},_=e("p",{class:"custom-container-title"},"TIP",-1),m=t("For questions that are not in this list, please search in issues. "),b={href:"https://github.com/alibaba/arthas/issues",target:"_blank",rel:"noopener noreferrer"},f=t("https://github.com/alibaba/arthas/issues"),g=e("h3",{id:"where-is-the-log-file",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#where-is-the-log-file","aria-hidden":"true"},"#"),t(" Where is the log file?")],-1),v=e("p",null,[t("Log file path: "),e("code",null,"~/logs/arthas/arthas.log")],-1),w=e("h3",{id:"how-much-impact-does-arthas-attach-have-on-the-performance-of-the-original-process",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#how-much-impact-does-arthas-attach-have-on-the-performance-of-the-original-process","aria-hidden":"true"},"#"),t(" How much impact does Arthas attach have on the performance of the original process?")],-1),k={href:"https://github.com/alibaba/arthas/issues/44",target:"_blank",rel:"noopener noreferrer"},x=t("https://github.com/alibaba/arthas/issues/44"),y=e("h3",{id:"target-process-not-responding-or-hotspot-vm-not-loaded",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#target-process-not-responding-or-hotspot-vm-not-loaded","aria-hidden":"true"},"#"),t(" target process not responding or HotSpot VM not loaded")],-1),j=e("p",null,"com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded",-1),C=e("li",null,"Check whether the current user and the target java process are consistent. If they are inconsistent, switch to the same user. JVM can only attach java processes under the same user.",-1),I=e("li",null,[t("Try to use "),e("code",null,"jstack -l $pid"),t(". If the process does not respond, it means that the process may freeze and fail to respond to the JVM attach signal. So Arthas based on the attach mechanism cannot work. Try to use "),e("code",null,"jmap"),t(" heapdump to analyze.")],-1),V=t("Try to attach math-game in "),q=t("quick-start"),E=t("."),F=t("For more information: "),L={href:"https://github.com/alibaba/arthas/issues/347",target:"_blank",rel:"noopener noreferrer"},S=t("https://github.com/alibaba/arthas/issues/347"),H=r(`<h3 id="can-commands-such-as-trace-watch-enhance-the-classes-in-jdk" tabindex="-1"><a class="header-anchor" href="#can-commands-such-as-trace-watch-enhance-the-classes-in-jdk" aria-hidden="true">#</a> Can commands such as trace/watch enhance the classes in jdk?</h3><p>By default, classes beginning with <code>java.</code> or the classes loaded by the <code>Bootstrap ClassLoader</code> are filtered out, but they can be turned on:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>options unsafe <span class="token boolean">true</span>
import{_ as h,o as c,c as d,a as e,b as a,w as n,e as t,d as r,r as i}from"./app.bd2aade7.js";const l={},u=e("h1",{id:"faq",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#faq","aria-hidden":"true"},"#"),t(" FAQ")],-1),p={class:"custom-container tip"},_=e("p",{class:"custom-container-title"},"TIP",-1),m=t("For questions that are not in this list, please search in issues. "),b={href:"https://github.com/alibaba/arthas/issues",target:"_blank",rel:"noopener noreferrer"},f=t("https://github.com/alibaba/arthas/issues"),g=e("h3",{id:"where-is-the-log-file",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#where-is-the-log-file","aria-hidden":"true"},"#"),t(" Where is the log file?")],-1),v=e("p",null,[t("Log file path: "),e("code",null,"~/logs/arthas/arthas.log")],-1),w=e("h3",{id:"how-much-impact-does-arthas-attach-have-on-the-performance-of-the-original-process",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#how-much-impact-does-arthas-attach-have-on-the-performance-of-the-original-process","aria-hidden":"true"},"#"),t(" How much impact does Arthas attach have on the performance of the original process?")],-1),k={href:"https://github.com/alibaba/arthas/issues/44",target:"_blank",rel:"noopener noreferrer"},x=t("https://github.com/alibaba/arthas/issues/44"),y=e("h3",{id:"target-process-not-responding-or-hotspot-vm-not-loaded",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#target-process-not-responding-or-hotspot-vm-not-loaded","aria-hidden":"true"},"#"),t(" target process not responding or HotSpot VM not loaded")],-1),j=e("p",null,"com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded",-1),C=e("li",null,"Check whether the current user and the target java process are consistent. If they are inconsistent, switch to the same user. JVM can only attach java processes under the same user.",-1),I=e("li",null,[t("Try to use "),e("code",null,"jstack -l $pid"),t(". If the process does not respond, it means that the process may freeze and fail to respond to the JVM attach signal. So Arthas based on the attach mechanism cannot work. Try to use "),e("code",null,"jmap"),t(" heapdump to analyze.")],-1),V=t("Try to attach math-game in "),q=t("quick-start"),E=t("."),F=t("For more information: "),L={href:"https://github.com/alibaba/arthas/issues/347",target:"_blank",rel:"noopener noreferrer"},S=t("https://github.com/alibaba/arthas/issues/347"),H=r(`<h3 id="can-commands-such-as-trace-watch-enhance-the-classes-in-jdk" tabindex="-1"><a class="header-anchor" href="#can-commands-such-as-trace-watch-enhance-the-classes-in-jdk" aria-hidden="true">#</a> Can commands such as trace/watch enhance the classes in jdk?</h3><p>By default, classes beginning with <code>java.</code> or the classes loaded by the <code>Bootstrap ClassLoader</code> are filtered out, but they can be turned on:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>options unsafe <span class="token boolean">true</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,3),T=t("See more at "),A=t("options"),M=r(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>To support the jars appended by java.lang.instrument.Instrumentation#appendToBootstrapClassLoaderSearch need to enable unsafe.</p></div><h3 id="how-to-view-the-result-in-json-format" tabindex="-1"><a class="header-anchor" href="#how-to-view-the-result-in-json-format" aria-hidden="true">#</a> How to view the result in <code>json</code> format</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>options json-format <span class="token boolean">true</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,3),B=t("See more at "),N=t("options"),O=e("h3",{id:"can-arthas-trace-native-methods",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#can-arthas-trace-native-methods","aria-hidden":"true"},"#"),t(" Can arthas trace native methods")],-1),Y=e("p",null,"No.",-1),z=e("h3",{id:"can-arthas-view-the-value-of-a-variable-in-memory",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#can-arthas-view-the-value-of-a-variable-in-memory","aria-hidden":"true"},"#"),t(" Can arthas view the value of a variable in memory?")],-1),J=t("You can use "),R=e("code",null,"vmtool",-1),U=t(" command."),W=t("You can use some tricks to intercept the object with the "),$=e("code",null,"tt",-1),G=t(" command, or fetch it from a static method."),P=e("h3",{id:"how-to-filter-method-with-the-same-name",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#how-to-filter-method-with-the-same-name","aria-hidden":"true"},"#"),t(" How to filter method with the same name?")],-1),Q=t("You can used all variables in "),D=t("fundamental fields in expressions"),K=t(" for the condition express to filter method with the same name, you can use the number of parameters "),X=e("code",null,"params.length ==1",-1),Z=t(",parameter type "),ee=e("code",null,"params[0] instanceof java.lang.Integer",-1),te=t(",return value type "),ae=e("code",null,"returnObj instanceof java.util.List",-1),se=t(" and so on in one or more combinations as condition express."),oe=t("You can use "),ne=e("code",null,"-v",-1),re=t(" to view the condition express result "),ie={href:"https://github.com/alibaba/arthas/issues/1348",target:"_blank",rel:"noopener noreferrer"},he=t("https://github.com/alibaba/arthas/issues/1348"),ce=t("example "),de=t("math-game"),le=r(`<div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">watch</span> demo.MathGame primeFactors <span class="token string">&#39;{params,returnObj,throwExp}&#39;</span> <span class="token string">&#39;params.length &gt;0 &amp;&amp; returnObj instanceof java.util.List&#39;</span> -v
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="how-to-watch-or-trace-constructor" tabindex="-1"><a class="header-anchor" href="#how-to-watch-or-trace-constructor" aria-hidden="true">#</a> How to watch or trace constructor?</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">watch</span> demo.MathGame <span class="token operator">&lt;</span>init<span class="token operator">&gt;</span> <span class="token string">&#39;{params,returnObj,throwExp}&#39;</span> -v
@@ -1,4 +1,4 @@
import{_ as i,o as c,c as p,a as s,b as n,w as r,e as a,d as o,r as t}from"./app.391b0e4e.js";const d={},u=s("h1",{id:"getstatic",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#getstatic","aria-hidden":"true"},"#"),a(" getstatic")],-1),m={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-getstatic",target:"_blank",rel:"noopener noreferrer"},v=s("code",null,"getstatic",-1),b=a("\u5728\u7EBF\u6559\u7A0B"),k=a("\u63A8\u8350\u76F4\u63A5\u4F7F\u7528"),g=a("ognl"),h=a("\u547D\u4EE4\uFF0C\u66F4\u52A0\u7075\u6D3B\u3002"),_=o(`<p>\u901A\u8FC7 getstatic \u547D\u4EE4\u53EF\u4EE5\u65B9\u4FBF\u7684\u67E5\u770B\u7C7B\u7684\u9759\u6001\u5C5E\u6027\u3002\u4F7F\u7528\u65B9\u6CD5\u4E3A<code>getstatic class_name field_name</code></p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ getstatic demo.MathGame random
import{_ as i,o as c,c as p,a as s,b as n,w as r,e as a,d as o,r as t}from"./app.bd2aade7.js";const d={},u=s("h1",{id:"getstatic",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#getstatic","aria-hidden":"true"},"#"),a(" getstatic")],-1),m={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-getstatic",target:"_blank",rel:"noopener noreferrer"},v=s("code",null,"getstatic",-1),b=a("\u5728\u7EBF\u6559\u7A0B"),k=a("\u63A8\u8350\u76F4\u63A5\u4F7F\u7528"),g=a("ognl"),h=a("\u547D\u4EE4\uFF0C\u66F4\u52A0\u7075\u6D3B\u3002"),_=o(`<p>\u901A\u8FC7 getstatic \u547D\u4EE4\u53EF\u4EE5\u65B9\u4FBF\u7684\u67E5\u770B\u7C7B\u7684\u9759\u6001\u5C5E\u6027\u3002\u4F7F\u7528\u65B9\u6CD5\u4E3A<code>getstatic class_name field_name</code></p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ getstatic demo.MathGame random
field: random
@Random<span class="token punctuation">[</span>
<span class="token assign-left variable">serialVersionUID</span><span class="token operator">=</span>@Long<span class="token punctuation">[</span><span class="token number">3905348978240129619</span><span class="token punctuation">]</span>,
@@ -1,4 +1,4 @@
import{_ as o,o as i,c as l,a as s,b as e,e as n,d as t,r as c}from"./app.391b0e4e.js";const p={},r=s("h1",{id:"getstatic",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#getstatic","aria-hidden":"true"},"#"),n(" getstatic")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-getstatic",target:"_blank",rel:"noopener noreferrer"},d=s("code",null,"getstatic",-1),m=n(" online tutorial"),k=t(`<ul><li>It is recommended to use the [OGNL] (ognl.md) command, which will be more flexible.</li></ul><p>Check the static fields of classes conveniently, the usage is <code>getstatic class_name field_name</code>.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ getstatic demo.MathGame random
import{_ as o,o as i,c as l,a as s,b as e,e as n,d as t,r as c}from"./app.bd2aade7.js";const p={},r=s("h1",{id:"getstatic",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#getstatic","aria-hidden":"true"},"#"),n(" getstatic")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-getstatic",target:"_blank",rel:"noopener noreferrer"},d=s("code",null,"getstatic",-1),m=n(" online tutorial"),k=t(`<ul><li>It is recommended to use the [OGNL] (ognl.md) command, which will be more flexible.</li></ul><p>Check the static fields of classes conveniently, the usage is <code>getstatic class_name field_name</code>.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ getstatic demo.MathGame random
field: random
@Random<span class="token punctuation">[</span>
<span class="token assign-left variable">serialVersionUID</span><span class="token operator">=</span>@Long<span class="token punctuation">[</span><span class="token number">3905348978240129619</span><span class="token punctuation">]</span>,
@@ -1,4 +1,4 @@
import{_ as s,o as t,c as l,a as e,b as a,e as n,d as r,r as d}from"./app.391b0e4e.js";const c={},v=e("h1",{id:"grep",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#grep","aria-hidden":"true"},"#"),n(" grep")],-1),o={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-grep",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"grep",-1),m=n("\u5728\u7EBF\u6559\u7A0B"),p=r(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u7C7B\u4F3C\u4F20\u7EDF\u7684<code>grep</code>\u547D\u4EE4\u3002</p></div><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code> USAGE:
import{_ as s,o as t,c as l,a as e,b as a,e as n,d as r,r as d}from"./app.bd2aade7.js";const c={},v=e("h1",{id:"grep",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#grep","aria-hidden":"true"},"#"),n(" grep")],-1),o={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-grep",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"grep",-1),m=n("\u5728\u7EBF\u6559\u7A0B"),p=r(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u7C7B\u4F3C\u4F20\u7EDF\u7684<code>grep</code>\u547D\u4EE4\u3002</p></div><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code> USAGE:
grep [-A &lt;value&gt;] [-B &lt;value&gt;] [-C &lt;value&gt;] [-h] [-i] [-v] [-n] [-m &lt;value&gt;] [-e] [--trim-end] pattern
SUMMARY:
@@ -1,4 +1,4 @@
import{_ as t,o as s,c as l,a as e,b as a,e as n,d as r,r as d}from"./app.391b0e4e.js";const c={},v=e("h1",{id:"grep",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#grep","aria-hidden":"true"},"#"),n(" grep")],-1),o={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-grep",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"grep",-1),m=n(" online tutorial"),p=r(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Similar to the traditional <code>grep</code> command.</p></div><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code> USAGE:
import{_ as t,o as s,c as l,a as e,b as a,e as n,d as r,r as d}from"./app.bd2aade7.js";const c={},v=e("h1",{id:"grep",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#grep","aria-hidden":"true"},"#"),n(" grep")],-1),o={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-grep",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"grep",-1),m=n(" online tutorial"),p=r(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Similar to the traditional <code>grep</code> command.</p></div><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code> USAGE:
grep [-A &lt;value&gt;] [-B &lt;value&gt;] [-C &lt;value&gt;] [-h] [-i] [-v] [-n] [-m &lt;value&gt;] [-e] [--trim-end] pattern
SUMMARY:
@@ -1,4 +1,4 @@
import{_ as e,o as p,c as i,a as s,b as c,w as o,d as a,e as n,r as l}from"./app.391b0e4e.js";const u={},d=a(`<h1 id="groovy" tabindex="-1"><a class="header-anchor" href="#groovy" aria-hidden="true">#</a> groovy</h1><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>Arthas \u652F\u6301 groovy \u811A\u672C\u589E\u5F3A\uFF0C\u5141\u8BB8\u50CF BTrace \u4E00\u6837\u7F16\u5199\u811A\u672C\u6765\u89E3\u51B3\u95EE\u9898\uFF0C\u53EF\u4EE5\u5728 groovy \u811A\u672C\u4E2D\u8FDB\u884C if/for/switch/while \u7B49\u63A7\u5236\u8BED\u53E5\uFF0C\u4E0D\u53D7\u9650\u5236\uFF0C\u4F46\u76F8\u6BD4 BTrace \u800C\u8A00\u62E5\u6709\u66F4\u591A\u7684\u9650\u5236\u8303\u56F4\u3002</p></div><h3 id="\u9650\u5236\u5185\u5BB9" tabindex="-1"><a class="header-anchor" href="#\u9650\u5236\u5185\u5BB9" aria-hidden="true">#</a> \u9650\u5236\u5185\u5BB9</h3><ol><li>\u7981\u6B62\u6539\u53D8\u539F\u6709\u903B\u8F91\uFF0C\u4E0E watch \u7B49\u547D\u4EE4\u4E00\u6837\uFF0C\u91CD\u70B9\u4FDD\u8BC1\u7684\u662F\u76D1\u542C\u548C\u89C2\u5BDF\u3002</li><li>\u53EA\u5141\u8BB8\u5728\u65B9\u6CD5\u7684 before/success/exception/finish \u56DB\u4E2A\u73AF\u8282\u8FDB\u884C\u76D1\u542C\u3002</li></ol><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>script-filepath</em></td><td style="text-align:left;">groovy \u811A\u672C\u7684\u7EDD\u5BF9\u8DEF\u5F84</td></tr><tr><td style="text-align:right;">[S]</td><td style="text-align:left;">\u5339\u914D\u6240\u6709\u7684\u5B50\u7C7B</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></tbody></table><p>\u9700\u8981\u8BF4\u660E\u7684\u662F\uFF0C\u7B2C\u4E09\u4E2A\u8F93\u5165\u53C2\u6570\u662F\u811A\u672C\u7684\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u6BD4\u5982 <code>/tmp/test.groovy</code>\uFF0C\u4E0D\u5EFA\u8BAE\u8F93\u5165\u76F8\u5BF9\u8DEF\u5F84\uFF0C\u6BD4\u5982 <code>./test.groovy</code></p><h3 id="\u4E94\u4E2A\u5173\u952E\u51FD\u6570\u58F0\u660E" tabindex="-1"><a class="header-anchor" href="#\u4E94\u4E2A\u5173\u952E\u51FD\u6570\u58F0\u660E" aria-hidden="true">#</a> \u4E94\u4E2A\u5173\u952E\u51FD\u6570\u58F0\u660E</h3><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token doc-comment comment">/**
import{_ as e,o as p,c as i,a as s,b as c,w as o,d as a,e as n,r as l}from"./app.bd2aade7.js";const u={},d=a(`<h1 id="groovy" tabindex="-1"><a class="header-anchor" href="#groovy" aria-hidden="true">#</a> groovy</h1><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>Arthas \u652F\u6301 groovy \u811A\u672C\u589E\u5F3A\uFF0C\u5141\u8BB8\u50CF BTrace \u4E00\u6837\u7F16\u5199\u811A\u672C\u6765\u89E3\u51B3\u95EE\u9898\uFF0C\u53EF\u4EE5\u5728 groovy \u811A\u672C\u4E2D\u8FDB\u884C if/for/switch/while \u7B49\u63A7\u5236\u8BED\u53E5\uFF0C\u4E0D\u53D7\u9650\u5236\uFF0C\u4F46\u76F8\u6BD4 BTrace \u800C\u8A00\u62E5\u6709\u66F4\u591A\u7684\u9650\u5236\u8303\u56F4\u3002</p></div><h3 id="\u9650\u5236\u5185\u5BB9" tabindex="-1"><a class="header-anchor" href="#\u9650\u5236\u5185\u5BB9" aria-hidden="true">#</a> \u9650\u5236\u5185\u5BB9</h3><ol><li>\u7981\u6B62\u6539\u53D8\u539F\u6709\u903B\u8F91\uFF0C\u4E0E watch \u7B49\u547D\u4EE4\u4E00\u6837\uFF0C\u91CD\u70B9\u4FDD\u8BC1\u7684\u662F\u76D1\u542C\u548C\u89C2\u5BDF\u3002</li><li>\u53EA\u5141\u8BB8\u5728\u65B9\u6CD5\u7684 before/success/exception/finish \u56DB\u4E2A\u73AF\u8282\u8FDB\u884C\u76D1\u542C\u3002</li></ol><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>script-filepath</em></td><td style="text-align:left;">groovy \u811A\u672C\u7684\u7EDD\u5BF9\u8DEF\u5F84</td></tr><tr><td style="text-align:right;">[S]</td><td style="text-align:left;">\u5339\u914D\u6240\u6709\u7684\u5B50\u7C7B</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></tbody></table><p>\u9700\u8981\u8BF4\u660E\u7684\u662F\uFF0C\u7B2C\u4E09\u4E2A\u8F93\u5165\u53C2\u6570\u662F\u811A\u672C\u7684\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u6BD4\u5982 <code>/tmp/test.groovy</code>\uFF0C\u4E0D\u5EFA\u8BAE\u8F93\u5165\u76F8\u5BF9\u8DEF\u5F84\uFF0C\u6BD4\u5982 <code>./test.groovy</code></p><h3 id="\u4E94\u4E2A\u5173\u952E\u51FD\u6570\u58F0\u660E" tabindex="-1"><a class="header-anchor" href="#\u4E94\u4E2A\u5173\u952E\u51FD\u6570\u58F0\u660E" aria-hidden="true">#</a> \u4E94\u4E2A\u5173\u952E\u51FD\u6570\u58F0\u660E</h3><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token doc-comment comment">/**
* \u589E\u5F3A\u811A\u672C\u76D1\u542C\u5668
*/</span>
<span class="token keyword">interface</span> <span class="token class-name">ScriptListener</span> <span class="token punctuation">{</span>
@@ -1,4 +1,4 @@
import{_ as e,o as p,c as o,a as s,b as i,w as c,d as a,e as n,r as l}from"./app.391b0e4e.js";const u={},r=a(`<h1 id="groovy" tabindex="-1"><a class="header-anchor" href="#groovy" aria-hidden="true">#</a> groovy</h1><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Arthas support groovy scripting to allow user to use script like BTrace. It is possible to use if/for/switch/while in groovy scripting, but has more limitations compared to BTrace.</p></div><h3 id="limitations" tabindex="-1"><a class="header-anchor" href="#limitations" aria-hidden="true">#</a> Limitations</h3><ol><li>Prohibit from alternating the original logic. Like <code>watch</code> command, The major purpose of scripting is monitoring and observing.</li><li>Only allow to monitor at the stages of before/success/exception/finish on one method.</li></ol><h3 id="parameters" tabindex="-1"><a class="header-anchor" href="#parameters" aria-hidden="true">#</a> Parameters</h3><table><thead><tr><th style="text-align:right;">Parameter</th><th style="text-align:left;">Explanation</th></tr></thead><tbody><tr><td style="text-align:right;"><em>class-pattern</em></td><td style="text-align:left;">class name pattern</td></tr><tr><td style="text-align:right;"><em>method-pattern</em></td><td style="text-align:left;">method name pattern</td></tr><tr><td style="text-align:right;"><em>script-filepath</em></td><td style="text-align:left;">the absolute path of the groovy script</td></tr><tr><td style="text-align:right;">[S]</td><td style="text-align:left;">match all sub classes</td></tr><tr><td style="text-align:right;">[E]</td><td style="text-align:left;">enable regex match, the default is wildcard match</td></tr></tbody></table><p>Note: the third parameter <code>script-filepath</code> must be the absolute path of the groovy script, for example <code>/tmp/test.groovy</code>. It is not recommended to use relative path, e.g. <code>./test.groovy</code>.</p><h3 id="explanation-on-the-important-callbacks" tabindex="-1"><a class="header-anchor" href="#explanation-on-the-important-callbacks" aria-hidden="true">#</a> Explanation on the important callbacks</h3><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token doc-comment comment">/**
import{_ as e,o as p,c as o,a as s,b as i,w as c,d as a,e as n,r as l}from"./app.bd2aade7.js";const u={},r=a(`<h1 id="groovy" tabindex="-1"><a class="header-anchor" href="#groovy" aria-hidden="true">#</a> groovy</h1><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Arthas support groovy scripting to allow user to use script like BTrace. It is possible to use if/for/switch/while in groovy scripting, but has more limitations compared to BTrace.</p></div><h3 id="limitations" tabindex="-1"><a class="header-anchor" href="#limitations" aria-hidden="true">#</a> Limitations</h3><ol><li>Prohibit from alternating the original logic. Like <code>watch</code> command, The major purpose of scripting is monitoring and observing.</li><li>Only allow to monitor at the stages of before/success/exception/finish on one method.</li></ol><h3 id="parameters" tabindex="-1"><a class="header-anchor" href="#parameters" aria-hidden="true">#</a> Parameters</h3><table><thead><tr><th style="text-align:right;">Parameter</th><th style="text-align:left;">Explanation</th></tr></thead><tbody><tr><td style="text-align:right;"><em>class-pattern</em></td><td style="text-align:left;">class name pattern</td></tr><tr><td style="text-align:right;"><em>method-pattern</em></td><td style="text-align:left;">method name pattern</td></tr><tr><td style="text-align:right;"><em>script-filepath</em></td><td style="text-align:left;">the absolute path of the groovy script</td></tr><tr><td style="text-align:right;">[S]</td><td style="text-align:left;">match all sub classes</td></tr><tr><td style="text-align:right;">[E]</td><td style="text-align:left;">enable regex match, the default is wildcard match</td></tr></tbody></table><p>Note: the third parameter <code>script-filepath</code> must be the absolute path of the groovy script, for example <code>/tmp/test.groovy</code>. It is not recommended to use relative path, e.g. <code>./test.groovy</code>.</p><h3 id="explanation-on-the-important-callbacks" tabindex="-1"><a class="header-anchor" href="#explanation-on-the-important-callbacks" aria-hidden="true">#</a> Explanation on the important callbacks</h3><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code><span class="token doc-comment comment">/**
* Listeners for script to enhance the class
*/</span>
<span class="token keyword">interface</span> <span class="token class-name">ScriptListener</span> <span class="token punctuation">{</span>
@@ -1,4 +1,4 @@
import{_ as s,o as t,c as i,a as e,b as d,e as a,d as p,r as o}from"./app.391b0e4e.js";const c={},r=e("h1",{id:"heapdump",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#heapdump","aria-hidden":"true"},"#"),a(" heapdump")],-1),l={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-heapdump",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"heapdump",-1),h=a(" online tutorial"),m=p(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>dump java heap in hprof binary format, like <code>jmap</code>.</p></div><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><h4 id="dump-to-file" tabindex="-1"><a class="header-anchor" href="#dump-to-file" aria-hidden="true">#</a> Dump to file</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@58205<span class="token punctuation">]</span>$ heapdump /tmp/dump.hprof
import{_ as s,o as t,c as i,a as e,b as d,e as a,d as p,r as o}from"./app.bd2aade7.js";const c={},r=e("h1",{id:"heapdump",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#heapdump","aria-hidden":"true"},"#"),a(" heapdump")],-1),l={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-heapdump",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"heapdump",-1),h=a(" online tutorial"),m=p(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>dump java heap in hprof binary format, like <code>jmap</code>.</p></div><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><h4 id="dump-to-file" tabindex="-1"><a class="header-anchor" href="#dump-to-file" aria-hidden="true">#</a> Dump to file</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@58205<span class="token punctuation">]</span>$ heapdump /tmp/dump.hprof
Dumping heap to /tmp/dump.hprof<span class="token punctuation">..</span>.
Heap dump <span class="token function">file</span> created
</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><h4 id="dump-only-live-objects" tabindex="-1"><a class="header-anchor" href="#dump-only-live-objects" aria-hidden="true">#</a> Dump only live objects</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@58205<span class="token punctuation">]</span>$ heapdump --live /tmp/dump.hprof
@@ -1,4 +1,4 @@
import{_ as s,o as d,c as i,a,b as p,e,d as t,r as c}from"./app.391b0e4e.js";const r={},u=a("h1",{id:"heapdump",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#heapdump","aria-hidden":"true"},"#"),e(" heapdump")],-1),o={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-heapdump",target:"_blank",rel:"noopener noreferrer"},l=a("code",null,"heapdump",-1),h=e("\u5728\u7EBF\u6559\u7A0B"),m=t(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>dump java heap, \u7C7B\u4F3C jmap \u547D\u4EE4\u7684 heap dump \u529F\u80FD\u3002</p></div><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><h4 id="dump-\u5230\u6307\u5B9A\u6587\u4EF6" tabindex="-1"><a class="header-anchor" href="#dump-\u5230\u6307\u5B9A\u6587\u4EF6" aria-hidden="true">#</a> dump \u5230\u6307\u5B9A\u6587\u4EF6</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@58205<span class="token punctuation">]</span>$ heapdump /tmp/dump.hprof
import{_ as s,o as d,c as i,a,b as p,e,d as t,r as c}from"./app.bd2aade7.js";const r={},u=a("h1",{id:"heapdump",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#heapdump","aria-hidden":"true"},"#"),e(" heapdump")],-1),o={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-heapdump",target:"_blank",rel:"noopener noreferrer"},l=a("code",null,"heapdump",-1),h=e("\u5728\u7EBF\u6559\u7A0B"),m=t(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>dump java heap, \u7C7B\u4F3C jmap \u547D\u4EE4\u7684 heap dump \u529F\u80FD\u3002</p></div><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><h4 id="dump-\u5230\u6307\u5B9A\u6587\u4EF6" tabindex="-1"><a class="header-anchor" href="#dump-\u5230\u6307\u5B9A\u6587\u4EF6" aria-hidden="true">#</a> dump \u5230\u6307\u5B9A\u6587\u4EF6</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@58205<span class="token punctuation">]</span>$ heapdump /tmp/dump.hprof
Dumping heap to /tmp/dump.hprof<span class="token punctuation">..</span>.
Heap dump <span class="token function">file</span> created
</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><h4 id="\u53EA-dump-live-\u5BF9\u8C61" tabindex="-1"><a class="header-anchor" href="#\u53EA-dump-live-\u5BF9\u8C61" aria-hidden="true">#</a> \u53EA dump live \u5BF9\u8C61</h4><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@58205<span class="token punctuation">]</span>$ heapdump --live /tmp/dump.hprof
@@ -1,4 +1,4 @@
import{_ as n,o as s,c as e,d as a}from"./app.391b0e4e.js";const i={},t=a(`<h1 id="help" tabindex="-1"><a class="header-anchor" href="#help" aria-hidden="true">#</a> help</h1><p>show help message, the command can show all the commands that current Arthas server supports,or you can use the command to show the detail usage of another command.</p><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>[help command] equals [command -help],both is to show the detail usage of one command.</p></div><h3 id="options" tabindex="-1"><a class="header-anchor" href="#options" aria-hidden="true">#</a> Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"></td><td style="text-align:left;">show all the commands that current Arthas server supports</td></tr><tr><td style="text-align:right;">[name:]</td><td style="text-align:left;">show the detail usage of one command</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token builtin class-name">help</span>
import{_ as n,o as s,c as e,d as a}from"./app.bd2aade7.js";const i={},t=a(`<h1 id="help" tabindex="-1"><a class="header-anchor" href="#help" aria-hidden="true">#</a> help</h1><p>show help message, the command can show all the commands that current Arthas server supports,or you can use the command to show the detail usage of another command.</p><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>[help command] equals [command -help],both is to show the detail usage of one command.</p></div><h3 id="options" tabindex="-1"><a class="header-anchor" href="#options" aria-hidden="true">#</a> Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"></td><td style="text-align:left;">show all the commands that current Arthas server supports</td></tr><tr><td style="text-align:right;">[name:]</td><td style="text-align:left;">show the detail usage of one command</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token builtin class-name">help</span>
NAME DESCRIPTION
<span class="token builtin class-name">help</span> Display Arthas Help
auth Authenticates the current session
@@ -1,4 +1,4 @@
import{_ as e,o as i,c as n,d as s}from"./app.391b0e4e.js";const a={},l=s(`<h1 id="help" tabindex="-1"><a class="header-anchor" href="#help" aria-hidden="true">#</a> help</h1><p>\u67E5\u770B\u547D\u4EE4\u5E2E\u52A9\u4FE1\u606F\uFF0C\u53EF\u4EE5\u67E5\u770B\u5F53\u524D arthas \u7248\u672C\u652F\u6301\u7684\u6307\u4EE4\uFF0C\u6216\u8005\u67E5\u770B\u5177\u4F53\u6307\u4EE4\u7684\u4F7F\u7528\u8BF4\u660E\u3002</p><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>[help \u6307\u4EE4]\u7684\u7B49\u540C\u4E8E[\u6307\u4EE4 -help]\uFF0C\u90FD\u662F\u67E5\u770B\u5177\u4F53\u6307\u4EE4\u7684\u4F7F\u7528\u8BF4\u660E\u3002</p></div><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;">\u4E0D\u63A5\u53C2\u6570</td><td style="text-align:left;">\u67E5\u8BE2\u5F53\u524D arthas \u7248\u672C\u652F\u6301\u7684\u6307\u4EE4\u4EE5\u53CA\u6307\u4EE4\u63CF\u8FF0</td></tr><tr><td style="text-align:right;">[name:]</td><td style="text-align:left;">\u67E5\u8BE2\u5177\u4F53\u6307\u4EE4\u7684\u4F7F\u7528\u8BF4\u660E</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ help
import{_ as e,o as i,c as n,d as s}from"./app.bd2aade7.js";const a={},l=s(`<h1 id="help" tabindex="-1"><a class="header-anchor" href="#help" aria-hidden="true">#</a> help</h1><p>\u67E5\u770B\u547D\u4EE4\u5E2E\u52A9\u4FE1\u606F\uFF0C\u53EF\u4EE5\u67E5\u770B\u5F53\u524D arthas \u7248\u672C\u652F\u6301\u7684\u6307\u4EE4\uFF0C\u6216\u8005\u67E5\u770B\u5177\u4F53\u6307\u4EE4\u7684\u4F7F\u7528\u8BF4\u660E\u3002</p><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>[help \u6307\u4EE4]\u7684\u7B49\u540C\u4E8E[\u6307\u4EE4 -help]\uFF0C\u90FD\u662F\u67E5\u770B\u5177\u4F53\u6307\u4EE4\u7684\u4F7F\u7528\u8BF4\u660E\u3002</p></div><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;">\u4E0D\u63A5\u53C2\u6570</td><td style="text-align:left;">\u67E5\u8BE2\u5F53\u524D arthas \u7248\u672C\u652F\u6301\u7684\u6307\u4EE4\u4EE5\u53CA\u6307\u4EE4\u63CF\u8FF0</td></tr><tr><td style="text-align:right;">[name:]</td><td style="text-align:left;">\u67E5\u8BE2\u5177\u4F53\u6307\u4EE4\u7684\u4F7F\u7528\u8BF4\u660E</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ help
NAME DESCRIPTION
help Display Arthas Help
auth Authenticates the current session
@@ -1,4 +1,4 @@
import{_ as e,o as t,c as i,d as a}from"./app.391b0e4e.js";const s={},d=a(`<h1 id="history" tabindex="-1"><a class="header-anchor" href="#history" aria-hidden="true">#</a> history</h1><p>\u6253\u5370\u547D\u4EE4\u5386\u53F2\u3002</p><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u5386\u53F2\u6307\u4EE4\u4F1A\u901A\u8FC7\u4E00\u4E2A\u540D\u53EB history \u7684\u6587\u4EF6\u6301\u4E45\u5316\uFF0C\u6240\u4EE5 history \u6307\u4EE4\u53EF\u4EE5\u67E5\u770B\u5F53\u524D arthas \u670D\u52A1\u5668\u7684\u6240\u6709\u5386\u53F2\u547D\u4EE4\uFF0C\u800C\u4E0D\u4EC5\u53EA\u662F\u5F53\u524D\u6B21\u4F1A\u8BDD\u4F7F\u7528\u8FC7\u7684\u547D\u4EE4\u3002</p></div><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;">[c:]</td><td style="text-align:left;">\u6E05\u7A7A\u5386\u53F2\u6307\u4EE4</td></tr><tr><td style="text-align:right;">[n:]</td><td style="text-align:left;">\u663E\u793A\u6700\u8FD1\u6267\u884C\u7684 n \u6761\u6307\u4EE4</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>#\u67E5\u770B\u6700\u8FD1\u6267\u884C\u76843\u6761\u6307\u4EE4
import{_ as e,o as t,c as i,d as a}from"./app.bd2aade7.js";const s={},d=a(`<h1 id="history" tabindex="-1"><a class="header-anchor" href="#history" aria-hidden="true">#</a> history</h1><p>\u6253\u5370\u547D\u4EE4\u5386\u53F2\u3002</p><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u5386\u53F2\u6307\u4EE4\u4F1A\u901A\u8FC7\u4E00\u4E2A\u540D\u53EB history \u7684\u6587\u4EF6\u6301\u4E45\u5316\uFF0C\u6240\u4EE5 history \u6307\u4EE4\u53EF\u4EE5\u67E5\u770B\u5F53\u524D arthas \u670D\u52A1\u5668\u7684\u6240\u6709\u5386\u53F2\u547D\u4EE4\uFF0C\u800C\u4E0D\u4EC5\u53EA\u662F\u5F53\u524D\u6B21\u4F1A\u8BDD\u4F7F\u7528\u8FC7\u7684\u547D\u4EE4\u3002</p></div><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;">[c:]</td><td style="text-align:left;">\u6E05\u7A7A\u5386\u53F2\u6307\u4EE4</td></tr><tr><td style="text-align:right;">[n:]</td><td style="text-align:left;">\u663E\u793A\u6700\u8FD1\u6267\u884C\u7684 n \u6761\u6307\u4EE4</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>#\u67E5\u770B\u6700\u8FD1\u6267\u884C\u76843\u6761\u6307\u4EE4
$ history 3
269 thread
270 cls
@@ -1,4 +1,4 @@
import{_ as s,o as n,c as e,d as a}from"./app.391b0e4e.js";const t={},i=a(`<h1 id="history" tabindex="-1"><a class="header-anchor" href="#history" aria-hidden="true">#</a> history</h1><p>view command history.</p><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>history of commands will persisted in a file named history, so the history command can show all the history commands of current Arthas server ,but not only history in current session.</p></div><h3 id="options" tabindex="-1"><a class="header-anchor" href="#options" aria-hidden="true">#</a> Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;">[c:]</td><td style="text-align:left;">clear all the history commands</td></tr><tr><td style="text-align:right;">[n:]</td><td style="text-align:left;">view the nearest 5 commands</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token comment">#view the nearest 3 commands</span>
import{_ as s,o as n,c as e,d as a}from"./app.bd2aade7.js";const t={},i=a(`<h1 id="history" tabindex="-1"><a class="header-anchor" href="#history" aria-hidden="true">#</a> history</h1><p>view command history.</p><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>history of commands will persisted in a file named history, so the history command can show all the history commands of current Arthas server ,but not only history in current session.</p></div><h3 id="options" tabindex="-1"><a class="header-anchor" href="#options" aria-hidden="true">#</a> Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;">[c:]</td><td style="text-align:left;">clear all the history commands</td></tr><tr><td style="text-align:right;">[n:]</td><td style="text-align:left;">view the nearest 5 commands</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token comment">#view the nearest 3 commands</span>
$ <span class="token function">history</span> <span class="token number">3</span>
<span class="token number">269</span> thread
<span class="token number">270</span> cls
@@ -1,4 +1,4 @@
import{_ as i}from"./arthas-web-ui.d97900e6.js";import{_ as l,o as c,c as u,a as s,b as a,w as r,e as n,d as t,r as o}from"./app.391b0e4e.js";const d={},v=s("h1",{id:"http-api",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#http-api","aria-hidden":"true"},"#"),n(" Http API")],-1),k={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=case-http-api",target:"_blank",rel:"noopener noreferrer"},b=s("code",null,"Http API",-1),m=n("\u5728\u7EBF\u6559\u7A0B"),q=t(`<h3 id="\u6982\u89C8" tabindex="-1"><a class="header-anchor" href="#\u6982\u89C8" aria-hidden="true">#</a> \u6982\u89C8</h3><p>Http API \u63D0\u4F9B\u7C7B\u4F3C RESTful \u7684\u4EA4\u4E92\u63A5\u53E3\uFF0C\u8BF7\u6C42\u548C\u54CD\u5E94\u5747\u4E3A JSON \u683C\u5F0F\u7684\u6570\u636E\u3002\u76F8\u5BF9\u4E8E Telnet/WebConsole \u7684\u8F93\u51FA\u975E\u7ED3\u6784\u5316\u6587\u672C\u6570\u636E\uFF0CHttp API \u53EF\u4EE5\u63D0\u4F9B\u7ED3\u6784\u5316\u7684\u6570\u636E\uFF0C\u652F\u6301\u66F4\u590D\u6742\u7684\u4EA4\u4E92\u529F\u80FD\uFF0C\u6BD4\u5982\u7279\u5B9A\u5E94\u7528\u573A\u666F\u7684\u4E00\u7CFB\u5217\u8BCA\u65AD\u64CD\u4F5C\u3002</p><h4 id="\u8BBF\u95EE\u5730\u5740" tabindex="-1"><a class="header-anchor" href="#\u8BBF\u95EE\u5730\u5740" aria-hidden="true">#</a> \u8BBF\u95EE\u5730\u5740</h4><p>Http API \u63A5\u53E3\u5730\u5740\u4E3A\uFF1A<code>http://ip:port/api</code>\uFF0C\u5FC5\u987B\u4F7F\u7528 POST \u65B9\u5F0F\u63D0\u4EA4\u8BF7\u6C42\u53C2\u6570\u3002\u5982 POST <code>http://127.0.0.1:8563/api</code> \u3002</p><p>\u6CE8\u610F\uFF1Atelnet \u670D\u52A1\u7684 3658 \u7AEF\u53E3\u4E0E Chrome \u6D4F\u89C8\u5668\u6709\u517C\u5BB9\u6027\u95EE\u9898\uFF0C\u5EFA\u8BAE\u4F7F\u7528 http \u7AEF\u53E3 8563 \u6765\u8BBF\u95EE http \u63A5\u53E3\u3002</p><h4 id="\u8BF7\u6C42\u6570\u636E\u683C\u5F0F" tabindex="-1"><a class="header-anchor" href="#\u8BF7\u6C42\u6570\u636E\u683C\u5F0F" aria-hidden="true">#</a> \u8BF7\u6C42\u6570\u636E\u683C\u5F0F</h4><div class="language-json ext-json line-numbers-mode"><pre class="language-json"><code><span class="token punctuation">{</span>
import{_ as i}from"./arthas-web-ui.d97900e6.js";import{_ as l,o as c,c as u,a as s,b as a,w as r,e as n,d as t,r as o}from"./app.bd2aade7.js";const d={},v=s("h1",{id:"http-api",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#http-api","aria-hidden":"true"},"#"),n(" Http API")],-1),k={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=case-http-api",target:"_blank",rel:"noopener noreferrer"},b=s("code",null,"Http API",-1),m=n("\u5728\u7EBF\u6559\u7A0B"),q=t(`<h3 id="\u6982\u89C8" tabindex="-1"><a class="header-anchor" href="#\u6982\u89C8" aria-hidden="true">#</a> \u6982\u89C8</h3><p>Http API \u63D0\u4F9B\u7C7B\u4F3C RESTful \u7684\u4EA4\u4E92\u63A5\u53E3\uFF0C\u8BF7\u6C42\u548C\u54CD\u5E94\u5747\u4E3A JSON \u683C\u5F0F\u7684\u6570\u636E\u3002\u76F8\u5BF9\u4E8E Telnet/WebConsole \u7684\u8F93\u51FA\u975E\u7ED3\u6784\u5316\u6587\u672C\u6570\u636E\uFF0CHttp API \u53EF\u4EE5\u63D0\u4F9B\u7ED3\u6784\u5316\u7684\u6570\u636E\uFF0C\u652F\u6301\u66F4\u590D\u6742\u7684\u4EA4\u4E92\u529F\u80FD\uFF0C\u6BD4\u5982\u7279\u5B9A\u5E94\u7528\u573A\u666F\u7684\u4E00\u7CFB\u5217\u8BCA\u65AD\u64CD\u4F5C\u3002</p><h4 id="\u8BBF\u95EE\u5730\u5740" tabindex="-1"><a class="header-anchor" href="#\u8BBF\u95EE\u5730\u5740" aria-hidden="true">#</a> \u8BBF\u95EE\u5730\u5740</h4><p>Http API \u63A5\u53E3\u5730\u5740\u4E3A\uFF1A<code>http://ip:port/api</code>\uFF0C\u5FC5\u987B\u4F7F\u7528 POST \u65B9\u5F0F\u63D0\u4EA4\u8BF7\u6C42\u53C2\u6570\u3002\u5982 POST <code>http://127.0.0.1:8563/api</code> \u3002</p><p>\u6CE8\u610F\uFF1Atelnet \u670D\u52A1\u7684 3658 \u7AEF\u53E3\u4E0E Chrome \u6D4F\u89C8\u5668\u6709\u517C\u5BB9\u6027\u95EE\u9898\uFF0C\u5EFA\u8BAE\u4F7F\u7528 http \u7AEF\u53E3 8563 \u6765\u8BBF\u95EE http \u63A5\u53E3\u3002</p><h4 id="\u8BF7\u6C42\u6570\u636E\u683C\u5F0F" tabindex="-1"><a class="header-anchor" href="#\u8BF7\u6C42\u6570\u636E\u683C\u5F0F" aria-hidden="true">#</a> \u8BF7\u6C42\u6570\u636E\u683C\u5F0F</h4><div class="language-json ext-json line-numbers-mode"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;action&quot;</span><span class="token operator">:</span> <span class="token string">&quot;exec&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;requestId&quot;</span><span class="token operator">:</span> <span class="token string">&quot;req112&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;sessionId&quot;</span><span class="token operator">:</span> <span class="token string">&quot;94766d3c-8b39-42d3-8596-98aee3ccbefb&quot;</span><span class="token punctuation">,</span>
@@ -1,4 +1,4 @@
import{_ as i}from"./arthas-web-ui.d97900e6.js";import{_ as c,o as l,c as u,a as s,b as a,w as r,e as n,d as t,r as o}from"./app.391b0e4e.js";const d={},m=s("h1",{id:"http-api",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#http-api","aria-hidden":"true"},"#"),n(" Http API")],-1),v={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=case-http-api",target:"_blank",rel:"noopener noreferrer"},k=s("code",null,"Http API",-1),b=n(" online tutorial"),h=t(`<h3 id="overview" tabindex="-1"><a class="header-anchor" href="#overview" aria-hidden="true">#</a> Overview</h3><p>Http API provides a RESTful-like interactive interface, and both requests and responses data in JSON format. Compared with Telnet/WebConsole&#39;s output unstructured text data, Http API can provide structured data and support more complex interactive functions, such as a series of diagnostic operations in specific application scenarios.</p><h4 id="access-address" tabindex="-1"><a class="header-anchor" href="#access-address" aria-hidden="true">#</a> Access address</h4><p>The Http API address is: <code>http://ip:port/api</code>, the request parameters must be submitted using <code>POST</code>. Such as POST <code>http://127.0.0.1:8563/api</code>.</p><p>Note: The telnet port <code>3658</code> has compatibility issues with the Chrome browser. It is recommended to use the http port <code>8563</code> to access the http api.</p><h4 id="request-data-format" tabindex="-1"><a class="header-anchor" href="#request-data-format" aria-hidden="true">#</a> Request data format</h4><div class="language-json ext-json line-numbers-mode"><pre class="language-json"><code><span class="token punctuation">{</span>
import{_ as i}from"./arthas-web-ui.d97900e6.js";import{_ as c,o as l,c as u,a as s,b as a,w as r,e as n,d as t,r as o}from"./app.bd2aade7.js";const d={},m=s("h1",{id:"http-api",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#http-api","aria-hidden":"true"},"#"),n(" Http API")],-1),v={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=case-http-api",target:"_blank",rel:"noopener noreferrer"},k=s("code",null,"Http API",-1),b=n(" online tutorial"),h=t(`<h3 id="overview" tabindex="-1"><a class="header-anchor" href="#overview" aria-hidden="true">#</a> Overview</h3><p>Http API provides a RESTful-like interactive interface, and both requests and responses data in JSON format. Compared with Telnet/WebConsole&#39;s output unstructured text data, Http API can provide structured data and support more complex interactive functions, such as a series of diagnostic operations in specific application scenarios.</p><h4 id="access-address" tabindex="-1"><a class="header-anchor" href="#access-address" aria-hidden="true">#</a> Access address</h4><p>The Http API address is: <code>http://ip:port/api</code>, the request parameters must be submitted using <code>POST</code>. Such as POST <code>http://127.0.0.1:8563/api</code>.</p><p>Note: The telnet port <code>3658</code> has compatibility issues with the Chrome browser. It is recommended to use the http port <code>8563</code> to access the http api.</p><h4 id="request-data-format" tabindex="-1"><a class="header-anchor" href="#request-data-format" aria-hidden="true">#</a> Request data format</h4><div class="language-json ext-json line-numbers-mode"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;action&quot;</span><span class="token operator">:</span> <span class="token string">&quot;exec&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;requestId&quot;</span><span class="token operator">:</span> <span class="token string">&quot;req112&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;sessionId&quot;</span><span class="token operator">:</span> <span class="token string">&quot;94766d3c-8b39-42d3-8596-98aee3ccbefb&quot;</span><span class="token punctuation">,</span>
@@ -1 +1 @@
import{_ as i,o as r,c as s,a as e,b as o,d as n,e as t,r as l}from"./app.391b0e4e.js";var c="/images/alibabacloud_hotreload.png";const d={},h=n('<h1 id="idea-plugin" tabindex="-1"><a class="header-anchor" href="#idea-plugin" aria-hidden="true">#</a> IDEA Plugin</h1><h4 id="arthas-idea-\u90E8\u5206\u547D\u4EE4\u53EF\u89C6\u5316" tabindex="-1"><a class="header-anchor" href="#arthas-idea-\u90E8\u5206\u547D\u4EE4\u53EF\u89C6\u5316" aria-hidden="true">#</a> Arthas-idea\uFF08\u90E8\u5206\u547D\u4EE4\u53EF\u89C6\u5316\uFF09</h4><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u63D2\u4EF6\u7531\u793E\u533A\u5F00\u53D1\u8005\u63D0\u4F9B\u3002</p></div>',3),_=t("Jetbrains \u63D2\u4EF6\u83B7\u53D6\u5730\u5740\uFF1A "),u={href:"https://plugins.jetbrains.com/plugin/13581-arthas-idea",target:"_blank",rel:"noopener noreferrer"},p=t("https://plugins.jetbrains.com/plugin/13581-arthas-idea"),m=t("\u4F7F\u7528\u6587\u6863\uFF1A"),b={href:"https://www.yuque.com/arthas-idea-plugin",target:"_blank",rel:"noopener noreferrer"},g=t("https://www.yuque.com/arthas-idea-plugin"),f=t("\u6E90\u7801\u5730\u5740\uFF1A "),k={href:"https://github.com/WangJi92/arthas-idea-plugin",target:"_blank",rel:"noopener noreferrer"},v=t("https://github.com/WangJi92/arthas-idea-plugin"),x=n('<h4 id="alibaba-cloud-toolkit-\u70ED\u90E8\u7F72\u7EC4\u4EF6-\u4E00\u952E-retransform" tabindex="-1"><a class="header-anchor" href="#alibaba-cloud-toolkit-\u70ED\u90E8\u7F72\u7EC4\u4EF6-\u4E00\u952E-retransform" aria-hidden="true">#</a> Alibaba Cloud Toolkit \u70ED\u90E8\u7F72\u7EC4\u4EF6\uFF08\u4E00\u952E retransform\uFF09</h4><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u70ED\u90E8\u7F72\u7EC4\u4EF6\u652F\u6301\u4E00\u952E\u5C06\u7F16\u8F91\u5668\u4E2D\u4FEE\u6539\u7684 Java \u6E90\u7801\u5FEB\u901F\u7F16\u8BD1\uFF0C\u5E76\u66F4\u65B0\u5230\u8FDC\u7AEF\u5E94\u7528\u670D\u52A1\u4E2D\uFF0C\u514D\u53BB\u624B\u52A8 dump\u3001mc \u7684\u8FC7\u7A0B\u3002\u6B64\u5916\uFF0C\u4E5F\u53EF\u4EE5\u4E00\u952E\u8FD8\u539F retransform \u7684\u7C7B\u6587\u4EF6\u3002</p></div><p><img src="'+c+'" alt=""></p>',3),w=t("Jetbrains \u63D2\u4EF6\u83B7\u53D6\u5730\u5740\uFF1A "),J={href:"https://plugins.jetbrains.com/plugin/11386-alibaba-cloud-toolkit",target:"_blank",rel:"noopener noreferrer"},j=t("https://plugins.jetbrains.com/plugin/11386-alibaba-cloud-toolkit"),y=t("\u4F7F\u7528\u6587\u6863\uFF1A"),A={href:"https://help.aliyun.com/document_detail/381077.html",target:"_blank",rel:"noopener noreferrer"},E=t("https://help.aliyun.com/document_detail/381077.html"),N=e("li",null,[t("\u8054\u7CFB\u6211\u4EEC\uFF1A\u8BF7\u52A0 Alibaba Cloud Toolkit (\u5E94\u7528\u89C2\u6D4B\u5668) \u9489\u9489\u7528\u6237\u4EA4\u6D41\u7FA4\uFF08\u7FA4\u53F7\uFF1A"),e("strong",null,"34965379"),t("\uFF09")],-1);function V(B,C){const a=l("ExternalLinkIcon");return r(),s("div",null,[h,e("ul",null,[e("li",null,[_,e("a",u,[p,o(a)])]),e("li",null,[m,e("a",b,[g,o(a)])]),e("li",null,[f,e("a",k,[v,o(a)])])]),x,e("ul",null,[e("li",null,[w,e("a",J,[j,o(a)])]),e("li",null,[y,e("a",A,[E,o(a)])]),N])])}var T=i(d,[["render",V],["__file","idea-plugin.html.vue"]]);export{T as default};
import{_ as i,o as r,c as s,a as e,b as o,d as n,e as t,r as l}from"./app.bd2aade7.js";var c="/images/alibabacloud_hotreload.png";const d={},h=n('<h1 id="idea-plugin" tabindex="-1"><a class="header-anchor" href="#idea-plugin" aria-hidden="true">#</a> IDEA Plugin</h1><h4 id="arthas-idea-\u90E8\u5206\u547D\u4EE4\u53EF\u89C6\u5316" tabindex="-1"><a class="header-anchor" href="#arthas-idea-\u90E8\u5206\u547D\u4EE4\u53EF\u89C6\u5316" aria-hidden="true">#</a> Arthas-idea\uFF08\u90E8\u5206\u547D\u4EE4\u53EF\u89C6\u5316\uFF09</h4><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u63D2\u4EF6\u7531\u793E\u533A\u5F00\u53D1\u8005\u63D0\u4F9B\u3002</p></div>',3),_=t("Jetbrains \u63D2\u4EF6\u83B7\u53D6\u5730\u5740\uFF1A "),u={href:"https://plugins.jetbrains.com/plugin/13581-arthas-idea",target:"_blank",rel:"noopener noreferrer"},p=t("https://plugins.jetbrains.com/plugin/13581-arthas-idea"),m=t("\u4F7F\u7528\u6587\u6863\uFF1A"),b={href:"https://www.yuque.com/arthas-idea-plugin",target:"_blank",rel:"noopener noreferrer"},g=t("https://www.yuque.com/arthas-idea-plugin"),f=t("\u6E90\u7801\u5730\u5740\uFF1A "),k={href:"https://github.com/WangJi92/arthas-idea-plugin",target:"_blank",rel:"noopener noreferrer"},v=t("https://github.com/WangJi92/arthas-idea-plugin"),x=n('<h4 id="alibaba-cloud-toolkit-\u70ED\u90E8\u7F72\u7EC4\u4EF6-\u4E00\u952E-retransform" tabindex="-1"><a class="header-anchor" href="#alibaba-cloud-toolkit-\u70ED\u90E8\u7F72\u7EC4\u4EF6-\u4E00\u952E-retransform" aria-hidden="true">#</a> Alibaba Cloud Toolkit \u70ED\u90E8\u7F72\u7EC4\u4EF6\uFF08\u4E00\u952E retransform\uFF09</h4><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u70ED\u90E8\u7F72\u7EC4\u4EF6\u652F\u6301\u4E00\u952E\u5C06\u7F16\u8F91\u5668\u4E2D\u4FEE\u6539\u7684 Java \u6E90\u7801\u5FEB\u901F\u7F16\u8BD1\uFF0C\u5E76\u66F4\u65B0\u5230\u8FDC\u7AEF\u5E94\u7528\u670D\u52A1\u4E2D\uFF0C\u514D\u53BB\u624B\u52A8 dump\u3001mc \u7684\u8FC7\u7A0B\u3002\u6B64\u5916\uFF0C\u4E5F\u53EF\u4EE5\u4E00\u952E\u8FD8\u539F retransform \u7684\u7C7B\u6587\u4EF6\u3002</p></div><p><img src="'+c+'" alt=""></p>',3),w=t("Jetbrains \u63D2\u4EF6\u83B7\u53D6\u5730\u5740\uFF1A "),J={href:"https://plugins.jetbrains.com/plugin/11386-alibaba-cloud-toolkit",target:"_blank",rel:"noopener noreferrer"},j=t("https://plugins.jetbrains.com/plugin/11386-alibaba-cloud-toolkit"),y=t("\u4F7F\u7528\u6587\u6863\uFF1A"),A={href:"https://help.aliyun.com/document_detail/381077.html",target:"_blank",rel:"noopener noreferrer"},E=t("https://help.aliyun.com/document_detail/381077.html"),N=e("li",null,[t("\u8054\u7CFB\u6211\u4EEC\uFF1A\u8BF7\u52A0 Alibaba Cloud Toolkit (\u5E94\u7528\u89C2\u6D4B\u5668) \u9489\u9489\u7528\u6237\u4EA4\u6D41\u7FA4\uFF08\u7FA4\u53F7\uFF1A"),e("strong",null,"34965379"),t("\uFF09")],-1);function V(B,C){const a=l("ExternalLinkIcon");return r(),s("div",null,[h,e("ul",null,[e("li",null,[_,e("a",u,[p,o(a)])]),e("li",null,[m,e("a",b,[g,o(a)])]),e("li",null,[f,e("a",k,[v,o(a)])])]),x,e("ul",null,[e("li",null,[w,e("a",J,[j,o(a)])]),e("li",null,[y,e("a",A,[E,o(a)])]),N])])}var T=i(d,[["render",V],["__file","idea-plugin.html.vue"]]);export{T as default};
@@ -1 +1 @@
import{_ as a,o,c as s,a as e,b as i,e as t,r}from"./app.391b0e4e.js";const l={},c=e("h1",{id:"idea-plugin",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#idea-plugin","aria-hidden":"true"},"#"),t(" IDEA Plugin")],-1),u=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"TIP"),e("p",null,"Plugin is provided by community developers.")],-1),_=t("Jetbrains Plugin\uFF1A "),d={href:"https://plugins.jetbrains.com/plugin/13581-arthas-idea",target:"_blank",rel:"noopener noreferrer"},h=t("https://plugins.jetbrains.com/plugin/13581-arthas-idea"),p=t("Plugin Doc\uFF1A"),g={href:"https://www.yuque.com/arthas-idea-plugin",target:"_blank",rel:"noopener noreferrer"},m=t("https://www.yuque.com/arthas-idea-plugin"),f=t("Plugin Github\uFF1A "),b={href:"https://github.com/WangJi92/arthas-idea-plugin",target:"_blank",rel:"noopener noreferrer"},k=t("https://github.com/WangJi92/arthas-idea-plugin");function v(x,P){const n=r("ExternalLinkIcon");return o(),s("div",null,[c,u,e("ul",null,[e("li",null,[_,e("a",d,[h,i(n)])]),e("li",null,[p,e("a",g,[m,i(n)])]),e("li",null,[f,e("a",b,[k,i(n)])])])])}var y=a(l,[["render",v],["__file","idea-plugin.html.vue"]]);export{y as default};
import{_ as a,o,c as s,a as e,b as i,e as t,r}from"./app.bd2aade7.js";const l={},c=e("h1",{id:"idea-plugin",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#idea-plugin","aria-hidden":"true"},"#"),t(" IDEA Plugin")],-1),u=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"TIP"),e("p",null,"Plugin is provided by community developers.")],-1),_=t("Jetbrains Plugin\uFF1A "),d={href:"https://plugins.jetbrains.com/plugin/13581-arthas-idea",target:"_blank",rel:"noopener noreferrer"},h=t("https://plugins.jetbrains.com/plugin/13581-arthas-idea"),p=t("Plugin Doc\uFF1A"),g={href:"https://www.yuque.com/arthas-idea-plugin",target:"_blank",rel:"noopener noreferrer"},m=t("https://www.yuque.com/arthas-idea-plugin"),f=t("Plugin Github\uFF1A "),b={href:"https://github.com/WangJi92/arthas-idea-plugin",target:"_blank",rel:"noopener noreferrer"},k=t("https://github.com/WangJi92/arthas-idea-plugin");function v(x,P){const n=r("ExternalLinkIcon");return o(),s("div",null,[c,u,e("ul",null,[e("li",null,[_,e("a",d,[h,i(n)])]),e("li",null,[p,e("a",g,[m,i(n)])]),e("li",null,[f,e("a",b,[k,i(n)])])])])}var y=a(l,[["render",v],["__file","idea-plugin.html.vue"]]);export{y as default};
@@ -1 +1 @@
import{_ as e,o as c,c as r}from"./app.391b0e4e.js";const t={};function _(n,o){return c(),r("div")}var s=e(t,[["render",_],["__file","index.html.vue"]]);export{s as default};
import{_ as e,o as c,c as r}from"./app.bd2aade7.js";const t={};function _(n,o){return c(),r("div")}var s=e(t,[["render",_],["__file","index.html.vue"]]);export{s as default};
@@ -1 +1 @@
import{_ as e,o as c,c as r}from"./app.391b0e4e.js";const t={};function _(n,o){return c(),r("div")}var s=e(t,[["render",_],["__file","index.html.vue"]]);export{s as default};
import{_ as e,o as c,c as r}from"./app.bd2aade7.js";const t={};function _(n,o){return c(),r("div")}var s=e(t,[["render",_],["__file","index.html.vue"]]);export{s as default};
@@ -1 +1 @@
import{_ as o}from"./arthas.f9aec7b5.js";import{_ as s,o as i,c as n,a as e,b as r,d as c,e as t,r as l}from"./app.391b0e4e.js";const h={},d=c('<h1 id="\u7B80\u4ECB" tabindex="-1"><a class="header-anchor" href="#\u7B80\u4ECB" aria-hidden="true">#</a> \u7B80\u4ECB</h1><p><img src="'+o+'" alt=""></p><p>Arthas \u662F\u4E00\u6B3E\u7EBF\u4E0A\u76D1\u63A7\u8BCA\u65AD\u4EA7\u54C1\uFF0C\u901A\u8FC7\u5168\u5C40\u89C6\u89D2\u5B9E\u65F6\u67E5\u770B\u5E94\u7528 load\u3001\u5185\u5B58\u3001gc\u3001\u7EBF\u7A0B\u7684\u72B6\u6001\u4FE1\u606F\uFF0C\u5E76\u80FD\u5728\u4E0D\u4FEE\u6539\u5E94\u7528\u4EE3\u7801\u7684\u60C5\u51B5\u4E0B\uFF0C\u5BF9\u4E1A\u52A1\u95EE\u9898\u8FDB\u884C\u8BCA\u65AD\uFF0C\u5305\u62EC\u67E5\u770B\u65B9\u6CD5\u8C03\u7528\u7684\u51FA\u5165\u53C2\u3001\u5F02\u5E38\uFF0C\u76D1\u6D4B\u65B9\u6CD5\u6267\u884C\u8017\u65F6\uFF0C\u7C7B\u52A0\u8F7D\u4FE1\u606F\u7B49\uFF0C\u5927\u5927\u63D0\u5347\u7EBF\u4E0A\u95EE\u9898\u6392\u67E5\u6548\u7387\u3002</p><h3 id="arthas-\u963F\u5C14\u8428\u65AF-\u80FD\u4E3A\u4F60\u505A\u4EC0\u4E48" tabindex="-1"><a class="header-anchor" href="#arthas-\u963F\u5C14\u8428\u65AF-\u80FD\u4E3A\u4F60\u505A\u4EC0\u4E48" aria-hidden="true">#</a> Arthas\uFF08\u963F\u5C14\u8428\u65AF\uFF09\u80FD\u4E3A\u4F60\u505A\u4EC0\u4E48\uFF1F</h3><p><code>Arthas</code> \u662F Alibaba \u5F00\u6E90\u7684 Java \u8BCA\u65AD\u5DE5\u5177\uFF0C\u6DF1\u53D7\u5F00\u53D1\u8005\u559C\u7231\u3002</p><p>\u5F53\u4F60\u9047\u5230\u4EE5\u4E0B\u7C7B\u4F3C\u95EE\u9898\u800C\u675F\u624B\u65E0\u7B56\u65F6\uFF0C<code>Arthas</code>\u53EF\u4EE5\u5E2E\u52A9\u4F60\u89E3\u51B3\uFF1A</p><ol start="0"><li>\u8FD9\u4E2A\u7C7B\u4ECE\u54EA\u4E2A jar \u5305\u52A0\u8F7D\u7684\uFF1F\u4E3A\u4EC0\u4E48\u4F1A\u62A5\u5404\u79CD\u7C7B\u76F8\u5173\u7684 Exception\uFF1F</li><li>\u6211\u6539\u7684\u4EE3\u7801\u4E3A\u4EC0\u4E48\u6CA1\u6709\u6267\u884C\u5230\uFF1F\u96BE\u9053\u662F\u6211\u6CA1 commit\uFF1F\u5206\u652F\u641E\u9519\u4E86\uFF1F</li><li>\u9047\u5230\u95EE\u9898\u65E0\u6CD5\u5728\u7EBF\u4E0A debug\uFF0C\u96BE\u9053\u53EA\u80FD\u901A\u8FC7\u52A0\u65E5\u5FD7\u518D\u91CD\u65B0\u53D1\u5E03\u5417\uFF1F</li><li>\u7EBF\u4E0A\u9047\u5230\u67D0\u4E2A\u7528\u6237\u7684\u6570\u636E\u5904\u7406\u6709\u95EE\u9898\uFF0C\u4F46\u7EBF\u4E0A\u540C\u6837\u65E0\u6CD5 debug\uFF0C\u7EBF\u4E0B\u65E0\u6CD5\u91CD\u73B0\uFF01</li><li>\u662F\u5426\u6709\u4E00\u4E2A\u5168\u5C40\u89C6\u89D2\u6765\u67E5\u770B\u7CFB\u7EDF\u7684\u8FD0\u884C\u72B6\u51B5\uFF1F</li><li>\u6709\u4EC0\u4E48\u529E\u6CD5\u53EF\u4EE5\u76D1\u63A7\u5230 JVM \u7684\u5B9E\u65F6\u8FD0\u884C\u72B6\u6001\uFF1F</li><li>\u600E\u4E48\u5FEB\u901F\u5B9A\u4F4D\u5E94\u7528\u7684\u70ED\u70B9\uFF0C\u751F\u6210\u706B\u7130\u56FE\uFF1F</li><li>\u600E\u6837\u76F4\u63A5\u4ECE JVM \u5185\u67E5\u627E\u67D0\u4E2A\u7C7B\u7684\u5B9E\u4F8B\uFF1F</li></ol><p><code>Arthas</code> \u652F\u6301 JDK 6+\uFF0C\u652F\u6301 Linux/Mac/Windows\uFF0C\u91C7\u7528\u547D\u4EE4\u884C\u4EA4\u4E92\u6A21\u5F0F\uFF0C\u540C\u65F6\u63D0\u4F9B\u4E30\u5BCC\u7684 <code>Tab</code> \u81EA\u52A8\u8865\u5168\u529F\u80FD\uFF0C\u8FDB\u4E00\u6B65\u65B9\u4FBF\u8FDB\u884C\u95EE\u9898\u7684\u5B9A\u4F4D\u548C\u8BCA\u65AD\u3002</p>',8),_=t("\u5982\u679C\u60A8\u5728\u4F7F\u7528 Arthas\uFF0C\u8BF7\u8BA9\u6211\u4EEC\u77E5\u9053\uFF0C\u60A8\u7684\u4F7F\u7528\u5BF9\u6211\u4EEC\u975E\u5E38\u91CD\u8981\uFF1A"),p={href:"https://github.com/alibaba/arthas/issues/111",target:"_blank",rel:"noopener noreferrer"},u=t("\u67E5\u770B"),b=e("h3",{id:"contributors",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#contributors","aria-hidden":"true"},"#"),t(" Contributors")],-1),m={href:"https://github.com/alibaba/arthas/graphs/contributors",target:"_blank",rel:"noopener noreferrer"},f=e("img",{src:"https://opencollective.com/arthas/contributors.svg?width=890&button=false",alt:""},null,-1);function x(g,v){const a=l("ExternalLinkIcon");return i(),n("div",null,[d,e("p",null,[e("strong",null,[_,e("a",p,[u,r(a)])])]),b,e("p",null,[e("a",m,[f,r(a)])])])}var V=s(h,[["render",x],["__file","index.html.vue"]]);export{V as default};
import{_ as o}from"./arthas.f9aec7b5.js";import{_ as s,o as i,c as n,a as e,b as r,d as c,e as t,r as l}from"./app.bd2aade7.js";const h={},d=c('<h1 id="\u7B80\u4ECB" tabindex="-1"><a class="header-anchor" href="#\u7B80\u4ECB" aria-hidden="true">#</a> \u7B80\u4ECB</h1><p><img src="'+o+'" alt=""></p><p>Arthas \u662F\u4E00\u6B3E\u7EBF\u4E0A\u76D1\u63A7\u8BCA\u65AD\u4EA7\u54C1\uFF0C\u901A\u8FC7\u5168\u5C40\u89C6\u89D2\u5B9E\u65F6\u67E5\u770B\u5E94\u7528 load\u3001\u5185\u5B58\u3001gc\u3001\u7EBF\u7A0B\u7684\u72B6\u6001\u4FE1\u606F\uFF0C\u5E76\u80FD\u5728\u4E0D\u4FEE\u6539\u5E94\u7528\u4EE3\u7801\u7684\u60C5\u51B5\u4E0B\uFF0C\u5BF9\u4E1A\u52A1\u95EE\u9898\u8FDB\u884C\u8BCA\u65AD\uFF0C\u5305\u62EC\u67E5\u770B\u65B9\u6CD5\u8C03\u7528\u7684\u51FA\u5165\u53C2\u3001\u5F02\u5E38\uFF0C\u76D1\u6D4B\u65B9\u6CD5\u6267\u884C\u8017\u65F6\uFF0C\u7C7B\u52A0\u8F7D\u4FE1\u606F\u7B49\uFF0C\u5927\u5927\u63D0\u5347\u7EBF\u4E0A\u95EE\u9898\u6392\u67E5\u6548\u7387\u3002</p><h3 id="arthas-\u963F\u5C14\u8428\u65AF-\u80FD\u4E3A\u4F60\u505A\u4EC0\u4E48" tabindex="-1"><a class="header-anchor" href="#arthas-\u963F\u5C14\u8428\u65AF-\u80FD\u4E3A\u4F60\u505A\u4EC0\u4E48" aria-hidden="true">#</a> Arthas\uFF08\u963F\u5C14\u8428\u65AF\uFF09\u80FD\u4E3A\u4F60\u505A\u4EC0\u4E48\uFF1F</h3><p><code>Arthas</code> \u662F Alibaba \u5F00\u6E90\u7684 Java \u8BCA\u65AD\u5DE5\u5177\uFF0C\u6DF1\u53D7\u5F00\u53D1\u8005\u559C\u7231\u3002</p><p>\u5F53\u4F60\u9047\u5230\u4EE5\u4E0B\u7C7B\u4F3C\u95EE\u9898\u800C\u675F\u624B\u65E0\u7B56\u65F6\uFF0C<code>Arthas</code>\u53EF\u4EE5\u5E2E\u52A9\u4F60\u89E3\u51B3\uFF1A</p><ol start="0"><li>\u8FD9\u4E2A\u7C7B\u4ECE\u54EA\u4E2A jar \u5305\u52A0\u8F7D\u7684\uFF1F\u4E3A\u4EC0\u4E48\u4F1A\u62A5\u5404\u79CD\u7C7B\u76F8\u5173\u7684 Exception\uFF1F</li><li>\u6211\u6539\u7684\u4EE3\u7801\u4E3A\u4EC0\u4E48\u6CA1\u6709\u6267\u884C\u5230\uFF1F\u96BE\u9053\u662F\u6211\u6CA1 commit\uFF1F\u5206\u652F\u641E\u9519\u4E86\uFF1F</li><li>\u9047\u5230\u95EE\u9898\u65E0\u6CD5\u5728\u7EBF\u4E0A debug\uFF0C\u96BE\u9053\u53EA\u80FD\u901A\u8FC7\u52A0\u65E5\u5FD7\u518D\u91CD\u65B0\u53D1\u5E03\u5417\uFF1F</li><li>\u7EBF\u4E0A\u9047\u5230\u67D0\u4E2A\u7528\u6237\u7684\u6570\u636E\u5904\u7406\u6709\u95EE\u9898\uFF0C\u4F46\u7EBF\u4E0A\u540C\u6837\u65E0\u6CD5 debug\uFF0C\u7EBF\u4E0B\u65E0\u6CD5\u91CD\u73B0\uFF01</li><li>\u662F\u5426\u6709\u4E00\u4E2A\u5168\u5C40\u89C6\u89D2\u6765\u67E5\u770B\u7CFB\u7EDF\u7684\u8FD0\u884C\u72B6\u51B5\uFF1F</li><li>\u6709\u4EC0\u4E48\u529E\u6CD5\u53EF\u4EE5\u76D1\u63A7\u5230 JVM \u7684\u5B9E\u65F6\u8FD0\u884C\u72B6\u6001\uFF1F</li><li>\u600E\u4E48\u5FEB\u901F\u5B9A\u4F4D\u5E94\u7528\u7684\u70ED\u70B9\uFF0C\u751F\u6210\u706B\u7130\u56FE\uFF1F</li><li>\u600E\u6837\u76F4\u63A5\u4ECE JVM \u5185\u67E5\u627E\u67D0\u4E2A\u7C7B\u7684\u5B9E\u4F8B\uFF1F</li></ol><p><code>Arthas</code> \u652F\u6301 JDK 6+\uFF0C\u652F\u6301 Linux/Mac/Windows\uFF0C\u91C7\u7528\u547D\u4EE4\u884C\u4EA4\u4E92\u6A21\u5F0F\uFF0C\u540C\u65F6\u63D0\u4F9B\u4E30\u5BCC\u7684 <code>Tab</code> \u81EA\u52A8\u8865\u5168\u529F\u80FD\uFF0C\u8FDB\u4E00\u6B65\u65B9\u4FBF\u8FDB\u884C\u95EE\u9898\u7684\u5B9A\u4F4D\u548C\u8BCA\u65AD\u3002</p>',8),_=t("\u5982\u679C\u60A8\u5728\u4F7F\u7528 Arthas\uFF0C\u8BF7\u8BA9\u6211\u4EEC\u77E5\u9053\uFF0C\u60A8\u7684\u4F7F\u7528\u5BF9\u6211\u4EEC\u975E\u5E38\u91CD\u8981\uFF1A"),p={href:"https://github.com/alibaba/arthas/issues/111",target:"_blank",rel:"noopener noreferrer"},u=t("\u67E5\u770B"),b=e("h3",{id:"contributors",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#contributors","aria-hidden":"true"},"#"),t(" Contributors")],-1),m={href:"https://github.com/alibaba/arthas/graphs/contributors",target:"_blank",rel:"noopener noreferrer"},f=e("img",{src:"https://opencollective.com/arthas/contributors.svg?width=890&button=false",alt:""},null,-1);function x(g,v){const a=l("ExternalLinkIcon");return i(),n("div",null,[d,e("p",null,[e("strong",null,[_,e("a",p,[u,r(a)])])]),b,e("p",null,[e("a",m,[f,r(a)])])])}var V=s(h,[["render",x],["__file","index.html.vue"]]);export{V as default};
@@ -1 +1 @@
import{_ as i}from"./arthas.f9aec7b5.js";import{_ as a,o as r,c as n,a as e,b as s,d as l,e as t,r as c}from"./app.391b0e4e.js";const d={},h=l('<h1 id="introduction" tabindex="-1"><a class="header-anchor" href="#introduction" aria-hidden="true">#</a> Introduction</h1><p><img src="'+i+'" alt=""></p><p>Arthas is a Java diagnostic tool open-sourced by Alibaba middleware team. It is widely adopted and popular among the developers inside Alibaba. Arthas helps developers in trouble-shooting issues in production environment for Java based applications without modifying code or restarting servers.</p><h3 id="background" tabindex="-1"><a class="header-anchor" href="#background" aria-hidden="true">#</a> Background</h3><p>Oftentimes the production system network is inaccessible from local development environment. If issues are encountered in production systems, it is impossible to use IDE to debug the application remotely. What&#39;s even worse, debugging in production environment is unacceptable, as it will suspend all the threads, leading to services downtime.</p><p>Developers could always try to reproduce the same issue on the test/staging environment. However, this is tricky as some issues cannot be reproduced easily in a different environment, or even disappear once restarted.</p><p>And if you&#39;re thinking of adding some logs to your code to help trouble-shoot the issue, you will have to go through the following lifecycle: test, staging, and then to production. Time is money! This approach is inefficient! Worse still, the issue may not be fixed since it might be irreproducible once the JVM is restarted, as described above.</p><p>Arthas is built to solve these issues. A developer can troubleshoot production issues on the fly. No JVM restart, no additional code changes. Arthas works as an observer, that is, it will never suspend your running threads.</p><h3 id="key-features" tabindex="-1"><a class="header-anchor" href="#key-features" aria-hidden="true">#</a> Key features</h3><ul><li>Check whether a class is loaded? Or where the class is loaded from? (Useful for trouble-shooting jar file conflicts)</li><li>Decompile a class to ensure the code is running as expected.</li><li>Check classloader statistics, e.g. the number of classloaders, the number of classes loaded per classloader, the classloader hierarchy, possible classloader leaks, etc.</li><li>Check the method invocation details, e.g. method parameter, returned values, exceptions and etc.</li><li>Check the stack trace of specified method invocation. This is useful when a developer wants to know the caller of the method.</li><li>Trace the method invocation to find slow sub-invocations.</li><li>Monitor method invocation statistics, e.g. QPS (Query Per Second), RT (Return Time), success rate and etc.</li><li>Monitor system metrics, thread states and CPU usage, GC statistics and etc.</li><li>Supports command line interactive mode, with auto-complete feature enabled.</li><li>Supports telnet and WebSocket, which enables both local and remote diagnostics with command line and browsers.</li><li>Supports profiler/Flame Graph</li><li>Support get objects in the heap that are instances of the specified class.</li><li>Supports JDK 6+</li><li>Supports Linux/Mac/Windows</li></ul>',10),u=t("If you are using Arthas, please let us know. Your feedback is very important to us: "),p={href:"https://github.com/alibaba/arthas/issues/111",target:"_blank",rel:"noopener noreferrer"},m=t("View"),b=e("h3",{id:"contributors",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#contributors","aria-hidden":"true"},"#"),t(" Contributors")],-1),f={href:"https://github.com/alibaba/arthas/graphs/contributors",target:"_blank",rel:"noopener noreferrer"},g=e("img",{src:"https://opencollective.com/arthas/contributors.svg?width=890&button=false",alt:""},null,-1);function v(_,w){const o=c("ExternalLinkIcon");return r(),n("div",null,[h,e("p",null,[e("strong",null,[u,e("a",p,[m,s(o)])])]),b,e("p",null,[e("a",f,[g,s(o)])])])}var x=a(d,[["render",v],["__file","index.html.vue"]]);export{x as default};
import{_ as i}from"./arthas.f9aec7b5.js";import{_ as a,o as r,c as n,a as e,b as s,d as l,e as t,r as c}from"./app.bd2aade7.js";const d={},h=l('<h1 id="introduction" tabindex="-1"><a class="header-anchor" href="#introduction" aria-hidden="true">#</a> Introduction</h1><p><img src="'+i+'" alt=""></p><p>Arthas is a Java diagnostic tool open-sourced by Alibaba middleware team. It is widely adopted and popular among the developers inside Alibaba. Arthas helps developers in trouble-shooting issues in production environment for Java based applications without modifying code or restarting servers.</p><h3 id="background" tabindex="-1"><a class="header-anchor" href="#background" aria-hidden="true">#</a> Background</h3><p>Oftentimes the production system network is inaccessible from local development environment. If issues are encountered in production systems, it is impossible to use IDE to debug the application remotely. What&#39;s even worse, debugging in production environment is unacceptable, as it will suspend all the threads, leading to services downtime.</p><p>Developers could always try to reproduce the same issue on the test/staging environment. However, this is tricky as some issues cannot be reproduced easily in a different environment, or even disappear once restarted.</p><p>And if you&#39;re thinking of adding some logs to your code to help trouble-shoot the issue, you will have to go through the following lifecycle: test, staging, and then to production. Time is money! This approach is inefficient! Worse still, the issue may not be fixed since it might be irreproducible once the JVM is restarted, as described above.</p><p>Arthas is built to solve these issues. A developer can troubleshoot production issues on the fly. No JVM restart, no additional code changes. Arthas works as an observer, that is, it will never suspend your running threads.</p><h3 id="key-features" tabindex="-1"><a class="header-anchor" href="#key-features" aria-hidden="true">#</a> Key features</h3><ul><li>Check whether a class is loaded? Or where the class is loaded from? (Useful for trouble-shooting jar file conflicts)</li><li>Decompile a class to ensure the code is running as expected.</li><li>Check classloader statistics, e.g. the number of classloaders, the number of classes loaded per classloader, the classloader hierarchy, possible classloader leaks, etc.</li><li>Check the method invocation details, e.g. method parameter, returned values, exceptions and etc.</li><li>Check the stack trace of specified method invocation. This is useful when a developer wants to know the caller of the method.</li><li>Trace the method invocation to find slow sub-invocations.</li><li>Monitor method invocation statistics, e.g. QPS (Query Per Second), RT (Return Time), success rate and etc.</li><li>Monitor system metrics, thread states and CPU usage, GC statistics and etc.</li><li>Supports command line interactive mode, with auto-complete feature enabled.</li><li>Supports telnet and WebSocket, which enables both local and remote diagnostics with command line and browsers.</li><li>Supports profiler/Flame Graph</li><li>Support get objects in the heap that are instances of the specified class.</li><li>Supports JDK 6+</li><li>Supports Linux/Mac/Windows</li></ul>',10),u=t("If you are using Arthas, please let us know. Your feedback is very important to us: "),p={href:"https://github.com/alibaba/arthas/issues/111",target:"_blank",rel:"noopener noreferrer"},m=t("View"),b=e("h3",{id:"contributors",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#contributors","aria-hidden":"true"},"#"),t(" Contributors")],-1),f={href:"https://github.com/alibaba/arthas/graphs/contributors",target:"_blank",rel:"noopener noreferrer"},g=e("img",{src:"https://opencollective.com/arthas/contributors.svg?width=890&button=false",alt:""},null,-1);function v(_,w){const o=c("ExternalLinkIcon");return r(),n("div",null,[h,e("p",null,[e("strong",null,[u,e("a",p,[m,s(o)])])]),b,e("p",null,[e("a",f,[g,s(o)])])])}var x=a(d,[["render",v],["__file","index.html.vue"]]);export{x as default};
@@ -1,4 +1,4 @@
import{_ as t,o as l,c as o,a,b as s,w as h,d as n,e,r as d}from"./app.391b0e4e.js";const c={},u=n(`<h1 id="arthas-install" tabindex="-1"><a class="header-anchor" href="#arthas-install" aria-hidden="true">#</a> Arthas Install</h1><h2 id="\u5FEB\u901F\u5B89\u88C5" tabindex="-1"><a class="header-anchor" href="#\u5FEB\u901F\u5B89\u88C5" aria-hidden="true">#</a> \u5FEB\u901F\u5B89\u88C5</h2><h3 id="\u4F7F\u7528arthas-boot-\u63A8\u8350" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528arthas-boot-\u63A8\u8350" aria-hidden="true">#</a> \u4F7F\u7528<code>arthas-boot</code>\uFF08\u63A8\u8350\uFF09</h3><p>\u4E0B\u8F7D<code>arthas-boot.jar</code>\uFF0C\u7136\u540E\u7528<code>java -jar</code>\u7684\u65B9\u5F0F\u542F\u52A8\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
import{_ as t,o as l,c as o,a,b as s,w as h,d as n,e,r as d}from"./app.bd2aade7.js";const c={},u=n(`<h1 id="arthas-install" tabindex="-1"><a class="header-anchor" href="#arthas-install" aria-hidden="true">#</a> Arthas Install</h1><h2 id="\u5FEB\u901F\u5B89\u88C5" tabindex="-1"><a class="header-anchor" href="#\u5FEB\u901F\u5B89\u88C5" aria-hidden="true">#</a> \u5FEB\u901F\u5B89\u88C5</h2><h3 id="\u4F7F\u7528arthas-boot-\u63A8\u8350" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528arthas-boot-\u63A8\u8350" aria-hidden="true">#</a> \u4F7F\u7528<code>arthas-boot</code>\uFF08\u63A8\u8350\uFF09</h3><p>\u4E0B\u8F7D<code>arthas-boot.jar</code>\uFF0C\u7136\u540E\u7528<code>java -jar</code>\u7684\u65B9\u5F0F\u542F\u52A8\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><p>\u6253\u5370\u5E2E\u52A9\u4FE1\u606F\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>java -jar arthas-boot.jar -h
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><ul><li><p>\u5982\u679C\u4E0B\u8F7D\u901F\u5EA6\u6BD4\u8F83\u6162\uFF0C\u53EF\u4EE5\u4F7F\u7528 aliyun \u7684\u955C\u50CF\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>java -jar arthas-boot.jar --repo-mirror aliyun --use-http
@@ -1,4 +1,4 @@
import{_ as r,o as d,c as l,a,b as s,w as c,d as e,e as n,r as i}from"./app.391b0e4e.js";const h={},u=e(`<h1 id="install-arthas" tabindex="-1"><a class="header-anchor" href="#install-arthas" aria-hidden="true">#</a> Install Arthas</h1><h2 id="quick-installation" tabindex="-1"><a class="header-anchor" href="#quick-installation" aria-hidden="true">#</a> Quick installation</h2><h3 id="use-arthas-boot-recommended" tabindex="-1"><a class="header-anchor" href="#use-arthas-boot-recommended" aria-hidden="true">#</a> Use <code>arthas-boot</code>(Recommended)</h3><p>Download<code>arthas-boot.jar</code>\uFF0CStart with <code>java</code> command:</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
import{_ as r,o as d,c as l,a,b as s,w as c,d as e,e as n,r as i}from"./app.bd2aade7.js";const h={},u=e(`<h1 id="install-arthas" tabindex="-1"><a class="header-anchor" href="#install-arthas" aria-hidden="true">#</a> Install Arthas</h1><h2 id="quick-installation" tabindex="-1"><a class="header-anchor" href="#quick-installation" aria-hidden="true">#</a> Quick installation</h2><h3 id="use-arthas-boot-recommended" tabindex="-1"><a class="header-anchor" href="#use-arthas-boot-recommended" aria-hidden="true">#</a> Use <code>arthas-boot</code>(Recommended)</h3><p>Download<code>arthas-boot.jar</code>\uFF0CStart with <code>java</code> command:</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><p>Print usage:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>java -jar arthas-boot.jar -h
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="use-as-sh" tabindex="-1"><a class="header-anchor" href="#use-as-sh" aria-hidden="true">#</a> Use <code>as.sh</code></h3><p>You can install Arthas with one single line command on Linux, Unix, and Mac. Pls. copy the following command and paste it into the command line, then press <em>Enter</em> to run:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">curl</span> -L https://arthas.aliyun.com/install.sh <span class="token operator">|</span> <span class="token function">sh</span>
@@ -1,4 +1,4 @@
import{_ as l,o as i,c as u,a as n,b as a,w as t,e as s,d as o,r as p}from"./app.391b0e4e.js";const r={},d=n("h1",{id:"jad",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#jad","aria-hidden":"true"},"#"),s(" jad")],-1),k={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-jad",target:"_blank",rel:"noopener noreferrer"},m=n("code",null,"jad",-1),v=s(" online tutorial"),b=o(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Decompile the specified classes.</p></div><p><code>jad</code> helps to decompile the byte code running in JVM to the source code to assist you to understand the logic behind better.</p><ul><li>The decompiled code is syntax highlighted for better readability in Arthas console.</li><li>It is possible that there&#39;s grammar error in the decompiled code, but it should not affect your interpretation.</li></ul><h3 id="options" tabindex="-1"><a class="header-anchor" href="#options" aria-hidden="true">#</a> Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><em>class-pattern</em></td><td style="text-align:left;">pattern for the class name</td></tr><tr><td style="text-align:right;"><code>[c:]</code></td><td style="text-align:left;">hashcode of the class loader that loads the class</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">The class name of the ClassLoader that executes the expression.</td></tr><tr><td style="text-align:right;"><code>[E]</code></td><td style="text-align:left;">turn on regex match while the default is wildcard match</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><h4 id="decompile-java-lang-string" tabindex="-1"><a class="header-anchor" href="#decompile-java-lang-string" aria-hidden="true">#</a> Decompile <code>java.lang.String</code></h4><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code>$ jad <span class="token class-name"><span class="token namespace">java<span class="token punctuation">.</span>lang<span class="token punctuation">.</span></span>String</span>
import{_ as l,o as i,c as u,a as n,b as a,w as t,e as s,d as o,r as p}from"./app.bd2aade7.js";const r={},d=n("h1",{id:"jad",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#jad","aria-hidden":"true"},"#"),s(" jad")],-1),k={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-jad",target:"_blank",rel:"noopener noreferrer"},m=n("code",null,"jad",-1),v=s(" online tutorial"),b=o(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Decompile the specified classes.</p></div><p><code>jad</code> helps to decompile the byte code running in JVM to the source code to assist you to understand the logic behind better.</p><ul><li>The decompiled code is syntax highlighted for better readability in Arthas console.</li><li>It is possible that there&#39;s grammar error in the decompiled code, but it should not affect your interpretation.</li></ul><h3 id="options" tabindex="-1"><a class="header-anchor" href="#options" aria-hidden="true">#</a> Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><em>class-pattern</em></td><td style="text-align:left;">pattern for the class name</td></tr><tr><td style="text-align:right;"><code>[c:]</code></td><td style="text-align:left;">hashcode of the class loader that loads the class</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">The class name of the ClassLoader that executes the expression.</td></tr><tr><td style="text-align:right;"><code>[E]</code></td><td style="text-align:left;">turn on regex match while the default is wildcard match</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><h4 id="decompile-java-lang-string" tabindex="-1"><a class="header-anchor" href="#decompile-java-lang-string" aria-hidden="true">#</a> Decompile <code>java.lang.String</code></h4><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code>$ jad <span class="token class-name"><span class="token namespace">java<span class="token punctuation">.</span>lang<span class="token punctuation">.</span></span>String</span>
<span class="token class-name">ClassLoader</span><span class="token operator">:</span>
@@ -1,4 +1,4 @@
import{_ as l,o as i,c as u,a as n,b as a,w as p,e as s,d as o,r as t}from"./app.391b0e4e.js";const r={},k=n("h1",{id:"jad",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#jad","aria-hidden":"true"},"#"),s(" jad")],-1),d={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-jad",target:"_blank",rel:"noopener noreferrer"},m=n("code",null,"jad",-1),v=s("\u5728\u7EBF\u6559\u7A0B"),b=o(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u53CD\u7F16\u8BD1\u6307\u5B9A\u5DF2\u52A0\u8F7D\u7C7B\u7684\u6E90\u7801</p></div><p><code>jad</code> \u547D\u4EE4\u5C06 JVM \u4E2D\u5B9E\u9645\u8FD0\u884C\u7684 class \u7684 byte code \u53CD\u7F16\u8BD1\u6210 java \u4EE3\u7801\uFF0C\u4FBF\u4E8E\u4F60\u7406\u89E3\u4E1A\u52A1\u903B\u8F91\uFF1B</p><ul><li>\u5728 Arthas Console \u4E0A\uFF0C\u53CD\u7F16\u8BD1\u51FA\u6765\u7684\u6E90\u7801\u662F\u5E26\u8BED\u6CD5\u9AD8\u4EAE\u7684\uFF0C\u9605\u8BFB\u66F4\u65B9\u4FBF</li><li>\u5F53\u7136\uFF0C\u53CD\u7F16\u8BD1\u51FA\u6765\u7684 java \u4EE3\u7801\u53EF\u80FD\u4F1A\u5B58\u5728\u8BED\u6CD5\u9519\u8BEF\uFF0C\u4F46\u4E0D\u5F71\u54CD\u4F60\u8FDB\u884C\u9605\u8BFB\u7406\u89E3</li></ul><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;"><code>[c:]</code></td><td style="text-align:left;">\u7C7B\u6240\u5C5E ClassLoader \u7684 hashcode</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">\u6307\u5B9A\u6267\u884C\u8868\u8FBE\u5F0F\u7684 ClassLoader \u7684 class name</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></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><h4 id="\u53CD\u7F16\u8BD1java-lang-string" tabindex="-1"><a class="header-anchor" href="#\u53CD\u7F16\u8BD1java-lang-string" aria-hidden="true">#</a> \u53CD\u7F16\u8BD1<code>java.lang.String</code></h4><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code>$ jad <span class="token class-name"><span class="token namespace">java<span class="token punctuation">.</span>lang<span class="token punctuation">.</span></span>String</span>
import{_ as l,o as i,c as u,a as n,b as a,w as p,e as s,d as o,r as t}from"./app.bd2aade7.js";const r={},k=n("h1",{id:"jad",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#jad","aria-hidden":"true"},"#"),s(" jad")],-1),d={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-jad",target:"_blank",rel:"noopener noreferrer"},m=n("code",null,"jad",-1),v=s("\u5728\u7EBF\u6559\u7A0B"),b=o(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u53CD\u7F16\u8BD1\u6307\u5B9A\u5DF2\u52A0\u8F7D\u7C7B\u7684\u6E90\u7801</p></div><p><code>jad</code> \u547D\u4EE4\u5C06 JVM \u4E2D\u5B9E\u9645\u8FD0\u884C\u7684 class \u7684 byte code \u53CD\u7F16\u8BD1\u6210 java \u4EE3\u7801\uFF0C\u4FBF\u4E8E\u4F60\u7406\u89E3\u4E1A\u52A1\u903B\u8F91\uFF1B</p><ul><li>\u5728 Arthas Console \u4E0A\uFF0C\u53CD\u7F16\u8BD1\u51FA\u6765\u7684\u6E90\u7801\u662F\u5E26\u8BED\u6CD5\u9AD8\u4EAE\u7684\uFF0C\u9605\u8BFB\u66F4\u65B9\u4FBF</li><li>\u5F53\u7136\uFF0C\u53CD\u7F16\u8BD1\u51FA\u6765\u7684 java \u4EE3\u7801\u53EF\u80FD\u4F1A\u5B58\u5728\u8BED\u6CD5\u9519\u8BEF\uFF0C\u4F46\u4E0D\u5F71\u54CD\u4F60\u8FDB\u884C\u9605\u8BFB\u7406\u89E3</li></ul><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;"><code>[c:]</code></td><td style="text-align:left;">\u7C7B\u6240\u5C5E ClassLoader \u7684 hashcode</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">\u6307\u5B9A\u6267\u884C\u8868\u8FBE\u5F0F\u7684 ClassLoader \u7684 class name</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></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><h4 id="\u53CD\u7F16\u8BD1java-lang-string" tabindex="-1"><a class="header-anchor" href="#\u53CD\u7F16\u8BD1java-lang-string" aria-hidden="true">#</a> \u53CD\u7F16\u8BD1<code>java.lang.String</code></h4><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code>$ jad <span class="token class-name"><span class="token namespace">java<span class="token punctuation">.</span>lang<span class="token punctuation">.</span></span>String</span>
<span class="token class-name">ClassLoader</span><span class="token operator">:</span>
@@ -1,4 +1,4 @@
import{_ as s,o as l,c as a,a as e,b as d,e as i,d as r,r as v}from"./app.391b0e4e.js";const c={},m=e("h1",{id:"jvm",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#jvm","aria-hidden":"true"},"#"),i(" jvm")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-jvm",target:"_blank",rel:"noopener noreferrer"},t=e("code",null,"jvm",-1),b=i(" online tutorial"),o=r(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Check the current JVM&#39;s info</p></div><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ jvm
import{_ as s,o as l,c as a,a as e,b as d,e as i,d as r,r as v}from"./app.bd2aade7.js";const c={},m=e("h1",{id:"jvm",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#jvm","aria-hidden":"true"},"#"),i(" jvm")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-jvm",target:"_blank",rel:"noopener noreferrer"},t=e("code",null,"jvm",-1),b=i(" online tutorial"),o=r(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Check the current JVM&#39;s info</p></div><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ jvm
RUNTIME
--------------------------------------------------------------------------------------------------------------
MACHINE-NAME 37@ff267334bb65
@@ -1,4 +1,4 @@
import{_ as l,o as s,c as d,a as i,b as a,e as n,d as v,r}from"./app.391b0e4e.js";const c={},m=i("h1",{id:"jvm",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#jvm","aria-hidden":"true"},"#"),n(" jvm")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-jvm",target:"_blank",rel:"noopener noreferrer"},b=i("code",null,"jvm",-1),t=n("\u5728\u7EBF\u6559\u7A0B"),o=v(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u67E5\u770B\u5F53\u524D JVM \u4FE1\u606F</p></div><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ jvm
import{_ as l,o as s,c as d,a as i,b as a,e as n,d as v,r}from"./app.bd2aade7.js";const c={},m=i("h1",{id:"jvm",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#jvm","aria-hidden":"true"},"#"),n(" jvm")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-jvm",target:"_blank",rel:"noopener noreferrer"},b=i("code",null,"jvm",-1),t=n("\u5728\u7EBF\u6559\u7A0B"),o=v(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u67E5\u770B\u5F53\u524D JVM \u4FE1\u606F</p></div><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ jvm
RUNTIME
--------------------------------------------------------------------------------------------------------------
MACHINE-NAME 37@ff267334bb65
@@ -1,4 +1,4 @@
import{_ as o,o as r,c,a as t,b as a,e,d as n,r as i}from"./app.391b0e4e.js";const l={},u=t("h1",{id:"arthas-console-keymap",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#arthas-console-keymap","aria-hidden":"true"},"#"),e(" Arthas Console Keymap")],-1),s={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-keymap",target:"_blank",rel:"noopener noreferrer"},h=t("code",null,"keymap",-1),m=e(" online tutorial"),q=n(`<p>Use <code>keymap</code> command to print the current keymap:</p><p>The default keymap is:</p><table><thead><tr><th>Shortcut</th><th>Shortcut Description</th><th>Command Name</th><th>Command Description</th></tr></thead><tbody><tr><td><code>&quot;\\C-a&quot;</code></td><td>ctrl + a</td><td>beginning-of-line</td><td>go to the beginning of the line</td></tr><tr><td><code> &quot;\\C-e&quot;</code></td><td>ctrl + e</td><td>end-of-line</td><td>go to the end of the line</td></tr><tr><td><code>&quot;\\C-f&quot;</code></td><td>ctrl + f</td><td>forward-word</td><td>forward a word</td></tr><tr><td><code>&quot;\\C-b&quot;</code></td><td>ctrl + b</td><td>backward-word</td><td>backward a word</td></tr><tr><td><code>&quot;\\e[D&quot;</code></td><td>left arrow</td><td>backward-char</td><td>backward a character</td></tr><tr><td><code>&quot;\\e[C&quot;</code></td><td>right arrow</td><td>forward-char</td><td>forward a character</td></tr><tr><td><code>&quot;\\e[B&quot;</code></td><td>down arrow</td><td>next-history</td><td>show next history command</td></tr><tr><td><code>&quot;\\e[A&quot;</code></td><td>up arrow</td><td>previous-history</td><td>show previous history command</td></tr><tr><td><code>&quot;\\C-h&quot;</code></td><td>ctrl + h</td><td>backward-delete-char</td><td>backward delete a character</td></tr><tr><td><code>&quot;\\C-?&quot;</code></td><td>ctrl + shift + /</td><td>backward-delete-char</td><td>backward delete a character</td></tr><tr><td><code>&quot;\\C-u&quot;</code></td><td>ctrl + u</td><td>undo</td><td>clear current line</td></tr><tr><td><code>&quot;\\C-d&quot;</code></td><td>ctrl + d</td><td>delete-char</td><td>delete the character of the current cursor</td></tr><tr><td><code>&quot;\\C-k&quot;</code></td><td>ctrl + k</td><td>kill-line</td><td>delete all characters from the current cursor to the end of the line</td></tr><tr><td><code>&quot;\\C-i&quot;</code></td><td>ctrl + i</td><td>complete</td><td>Auto completion, equivalent to <code>TAB</code></td></tr><tr><td><code>&quot;\\C-j&quot;</code></td><td>ctrl + j</td><td>accept-line</td><td>end the current line, equivalent to <code>enter</code></td></tr><tr><td><code>&quot;\\C-m&quot;</code></td><td>ctrl + m</td><td>accept-line</td><td>end the current line, equivalent to <code>enter</code></td></tr><tr><td><code>&quot;\\C-w&quot;</code></td><td></td><td>backward-delete-word</td><td></td></tr><tr><td><code>&quot;\\C-x\\e[3~&quot;</code></td><td></td><td>backward-kill-line</td><td></td></tr><tr><td><code>&quot;\\e\\C-?&quot;</code></td><td></td><td>backward-kill-word</td><td></td></tr></tbody></table><ul><li>Press <code>tab</code> to enable auto-completion prompt at any time.</li><li>Enter command and <code>-</code> or <code>--</code>, then press <code>tab</code> to display the concrete options for the current command.</li></ul><h4 id="custom-shortcuts" tabindex="-1"><a class="header-anchor" href="#custom-shortcuts" aria-hidden="true">#</a> Custom shortcuts</h4><p>Specify customization in <code>$USER_HOME/.arthas/conf/inputrc</code> file in the current user home directory.</p><p>Vim user may want to map <code>ctrl+h</code> to moving the cursor forward one character. To achieve this, copy the default configuration first,</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>&quot;\\C-a&quot;: beginning-of-line
import{_ as o,o as r,c,a as t,b as a,e,d as n,r as i}from"./app.bd2aade7.js";const l={},u=t("h1",{id:"arthas-console-keymap",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#arthas-console-keymap","aria-hidden":"true"},"#"),e(" Arthas Console Keymap")],-1),s={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-keymap",target:"_blank",rel:"noopener noreferrer"},h=t("code",null,"keymap",-1),m=e(" online tutorial"),q=n(`<p>Use <code>keymap</code> command to print the current keymap:</p><p>The default keymap is:</p><table><thead><tr><th>Shortcut</th><th>Shortcut Description</th><th>Command Name</th><th>Command Description</th></tr></thead><tbody><tr><td><code>&quot;\\C-a&quot;</code></td><td>ctrl + a</td><td>beginning-of-line</td><td>go to the beginning of the line</td></tr><tr><td><code> &quot;\\C-e&quot;</code></td><td>ctrl + e</td><td>end-of-line</td><td>go to the end of the line</td></tr><tr><td><code>&quot;\\C-f&quot;</code></td><td>ctrl + f</td><td>forward-word</td><td>forward a word</td></tr><tr><td><code>&quot;\\C-b&quot;</code></td><td>ctrl + b</td><td>backward-word</td><td>backward a word</td></tr><tr><td><code>&quot;\\e[D&quot;</code></td><td>left arrow</td><td>backward-char</td><td>backward a character</td></tr><tr><td><code>&quot;\\e[C&quot;</code></td><td>right arrow</td><td>forward-char</td><td>forward a character</td></tr><tr><td><code>&quot;\\e[B&quot;</code></td><td>down arrow</td><td>next-history</td><td>show next history command</td></tr><tr><td><code>&quot;\\e[A&quot;</code></td><td>up arrow</td><td>previous-history</td><td>show previous history command</td></tr><tr><td><code>&quot;\\C-h&quot;</code></td><td>ctrl + h</td><td>backward-delete-char</td><td>backward delete a character</td></tr><tr><td><code>&quot;\\C-?&quot;</code></td><td>ctrl + shift + /</td><td>backward-delete-char</td><td>backward delete a character</td></tr><tr><td><code>&quot;\\C-u&quot;</code></td><td>ctrl + u</td><td>undo</td><td>clear current line</td></tr><tr><td><code>&quot;\\C-d&quot;</code></td><td>ctrl + d</td><td>delete-char</td><td>delete the character of the current cursor</td></tr><tr><td><code>&quot;\\C-k&quot;</code></td><td>ctrl + k</td><td>kill-line</td><td>delete all characters from the current cursor to the end of the line</td></tr><tr><td><code>&quot;\\C-i&quot;</code></td><td>ctrl + i</td><td>complete</td><td>Auto completion, equivalent to <code>TAB</code></td></tr><tr><td><code>&quot;\\C-j&quot;</code></td><td>ctrl + j</td><td>accept-line</td><td>end the current line, equivalent to <code>enter</code></td></tr><tr><td><code>&quot;\\C-m&quot;</code></td><td>ctrl + m</td><td>accept-line</td><td>end the current line, equivalent to <code>enter</code></td></tr><tr><td><code>&quot;\\C-w&quot;</code></td><td></td><td>backward-delete-word</td><td></td></tr><tr><td><code>&quot;\\C-x\\e[3~&quot;</code></td><td></td><td>backward-kill-line</td><td></td></tr><tr><td><code>&quot;\\e\\C-?&quot;</code></td><td></td><td>backward-kill-word</td><td></td></tr></tbody></table><ul><li>Press <code>tab</code> to enable auto-completion prompt at any time.</li><li>Enter command and <code>-</code> or <code>--</code>, then press <code>tab</code> to display the concrete options for the current command.</li></ul><h4 id="custom-shortcuts" tabindex="-1"><a class="header-anchor" href="#custom-shortcuts" aria-hidden="true">#</a> Custom shortcuts</h4><p>Specify customization in <code>$USER_HOME/.arthas/conf/inputrc</code> file in the current user home directory.</p><p>Vim user may want to map <code>ctrl+h</code> to moving the cursor forward one character. To achieve this, copy the default configuration first,</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>&quot;\\C-a&quot;: beginning-of-line
&quot;\\C-e&quot;: end-of-line
&quot;\\C-f&quot;: forward-word
&quot;\\C-b&quot;: backward-word
@@ -1,4 +1,4 @@
import{_ as o,o as r,c,a as t,b as a,e as d,d as l,r as i}from"./app.391b0e4e.js";const n={},u=t("h1",{id:"arthas-\u547D\u4EE4\u884C\u5FEB\u6377\u952E",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#arthas-\u547D\u4EE4\u884C\u5FEB\u6377\u952E","aria-hidden":"true"},"#"),d(" Arthas \u547D\u4EE4\u884C\u5FEB\u6377\u952E")],-1),s={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-keymap",target:"_blank",rel:"noopener noreferrer"},q=t("code",null,"keymap",-1),h=d("\u5728\u7EBF\u6559\u7A0B"),b=l(`<p><code>keymap</code>\u547D\u4EE4\u8F93\u51FA\u5F53\u524D\u7684\u5FEB\u6377\u952E\u6620\u5C04\u8868\uFF1A</p><p>\u9ED8\u8BA4\u7684\u5FEB\u6377\u952E\u5982\u4E0B\uFF1A</p><table><thead><tr><th>\u5FEB\u6377\u952E</th><th>\u5FEB\u6377\u952E\u8BF4\u660E</th><th>\u547D\u4EE4\u540D\u79F0</th><th>\u547D\u4EE4\u8BF4\u660E</th></tr></thead><tbody><tr><td><code>&quot;\\C-a&quot;</code></td><td>ctrl + a</td><td>beginning-of-line</td><td>\u8DF3\u5230\u884C\u9996</td></tr><tr><td><code> &quot;\\C-e&quot;</code></td><td>ctrl + e</td><td>end-of-line</td><td>\u8DF3\u5230\u884C\u5C3E</td></tr><tr><td><code>&quot;\\C-f&quot;</code></td><td>ctrl + f</td><td>forward-word</td><td>\u5411\u524D\u79FB\u52A8\u4E00\u4E2A\u5355\u8BCD</td></tr><tr><td><code>&quot;\\C-b&quot;</code></td><td>ctrl + b</td><td>backward-word</td><td>\u5411\u540E\u79FB\u52A8\u4E00\u4E2A\u5355\u8BCD</td></tr><tr><td><code>&quot;\\e[D&quot;</code></td><td>\u952E\u76D8\u5DE6\u65B9\u5411\u952E</td><td>backward-char</td><td>\u5149\u6807\u5411\u524D\u79FB\u52A8\u4E00\u4E2A\u5B57\u7B26</td></tr><tr><td><code>&quot;\\e[C&quot;</code></td><td>\u952E\u76D8\u53F3\u65B9\u5411\u952E</td><td>forward-char</td><td>\u5149\u6807\u5411\u540E\u79FB\u52A8\u4E00\u4E2A\u5B57\u7B26</td></tr><tr><td><code>&quot;\\e[B&quot;</code></td><td>\u952E\u76D8\u4E0B\u65B9\u5411\u952E</td><td>next-history</td><td>\u4E0B\u7FFB\u663E\u793A\u4E0B\u4E00\u4E2A\u547D\u4EE4</td></tr><tr><td><code>&quot;\\e[A&quot;</code></td><td>\u952E\u76D8\u4E0A\u65B9\u5411\u952E</td><td>previous-history</td><td>\u4E0A\u7FFB\u663E\u793A\u4E0A\u4E00\u4E2A\u547D\u4EE4</td></tr><tr><td><code>&quot;\\C-h&quot;</code></td><td>ctrl + h</td><td>backward-delete-char</td><td>\u5411\u540E\u5220\u9664\u4E00\u4E2A\u5B57\u7B26</td></tr><tr><td><code>&quot;\\C-?&quot;</code></td><td>ctrl + shift + /</td><td>backward-delete-char</td><td>\u5411\u540E\u5220\u9664\u4E00\u4E2A\u5B57\u7B26</td></tr><tr><td><code>&quot;\\C-u&quot;</code></td><td>ctrl + u</td><td>undo</td><td>\u64A4\u9500\u4E0A\u4E00\u4E2A\u547D\u4EE4\uFF0C\u76F8\u5F53\u4E8E\u6E05\u7A7A\u5F53\u524D\u884C</td></tr><tr><td><code>&quot;\\C-d&quot;</code></td><td>ctrl + d</td><td>delete-char</td><td>\u5220\u9664\u5F53\u524D\u5149\u6807\u6240\u5728\u5B57\u7B26</td></tr><tr><td><code>&quot;\\C-k&quot;</code></td><td>ctrl + k</td><td>kill-line</td><td>\u5220\u9664\u5F53\u524D\u5149\u6807\u5230\u884C\u5C3E\u7684\u6240\u6709\u5B57\u7B26</td></tr><tr><td><code>&quot;\\C-i&quot;</code></td><td>ctrl + i</td><td>complete</td><td>\u81EA\u52A8\u8865\u5168\uFF0C\u76F8\u5F53\u4E8E\u6572<code>TAB</code></td></tr><tr><td><code>&quot;\\C-j&quot;</code></td><td>ctrl + j</td><td>accept-line</td><td>\u7ED3\u675F\u5F53\u524D\u884C\uFF0C\u76F8\u5F53\u4E8E\u6572\u56DE\u8F66</td></tr><tr><td><code>&quot;\\C-m&quot;</code></td><td>ctrl + m</td><td>accept-line</td><td>\u7ED3\u675F\u5F53\u524D\u884C\uFF0C\u76F8\u5F53\u4E8E\u6572\u56DE\u8F66</td></tr><tr><td><code>&quot;\\C-w&quot;</code></td><td></td><td>backward-delete-word</td><td></td></tr><tr><td><code>&quot;\\C-x\\e[3~&quot;</code></td><td></td><td>backward-kill-line</td><td></td></tr><tr><td><code>&quot;\\e\\C-?&quot;</code></td><td></td><td>backward-kill-word</td><td></td></tr></tbody></table><ul><li>\u4EFB\u4F55\u65F6\u5019 <code>tab</code> \u952E\uFF0C\u4F1A\u6839\u636E\u5F53\u524D\u7684\u8F93\u5165\u7ED9\u51FA\u63D0\u793A</li><li>\u547D\u4EE4\u540E\u6572 <code>-</code> \u6216 <code>--</code> \uFF0C\u7136\u540E\u6309 <code>tab</code> \u952E\uFF0C\u53EF\u4EE5\u5C55\u793A\u51FA\u6B64\u547D\u4EE4\u5177\u4F53\u7684\u9009\u9879</li></ul><h4 id="\u81EA\u5B9A\u4E49\u5FEB\u6377\u952E" tabindex="-1"><a class="header-anchor" href="#\u81EA\u5B9A\u4E49\u5FEB\u6377\u952E" aria-hidden="true">#</a> \u81EA\u5B9A\u4E49\u5FEB\u6377\u952E</h4><p>\u5728\u5F53\u524D\u7528\u6237\u76EE\u5F55\u4E0B\u65B0\u5EFA<code>$USER_HOME/.arthas/conf/inputrc</code>\u6587\u4EF6\uFF0C\u52A0\u5165\u81EA\u5B9A\u4E49\u914D\u7F6E\u3002</p><p>\u5047\u8BBE\u6211\u662F vim \u7684\u91CD\u5EA6\u7528\u6237\uFF0C\u6211\u8981\u628A<code>ctrl+h</code>\u8BBE\u7F6E\u4E3A\u5149\u6807\u5411\u524D\u4E00\u4E2A\u5B57\u7B26\uFF0C\u5219\u8BBE\u7F6E\u5982\u4E0B\uFF0C\u9996\u5148\u62F7\u8D1D\u9ED8\u8BA4\u914D\u7F6E</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>&quot;\\C-a&quot;: beginning-of-line
import{_ as o,o as r,c,a as t,b as a,e as d,d as l,r as i}from"./app.bd2aade7.js";const n={},u=t("h1",{id:"arthas-\u547D\u4EE4\u884C\u5FEB\u6377\u952E",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#arthas-\u547D\u4EE4\u884C\u5FEB\u6377\u952E","aria-hidden":"true"},"#"),d(" Arthas \u547D\u4EE4\u884C\u5FEB\u6377\u952E")],-1),s={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-keymap",target:"_blank",rel:"noopener noreferrer"},q=t("code",null,"keymap",-1),h=d("\u5728\u7EBF\u6559\u7A0B"),b=l(`<p><code>keymap</code>\u547D\u4EE4\u8F93\u51FA\u5F53\u524D\u7684\u5FEB\u6377\u952E\u6620\u5C04\u8868\uFF1A</p><p>\u9ED8\u8BA4\u7684\u5FEB\u6377\u952E\u5982\u4E0B\uFF1A</p><table><thead><tr><th>\u5FEB\u6377\u952E</th><th>\u5FEB\u6377\u952E\u8BF4\u660E</th><th>\u547D\u4EE4\u540D\u79F0</th><th>\u547D\u4EE4\u8BF4\u660E</th></tr></thead><tbody><tr><td><code>&quot;\\C-a&quot;</code></td><td>ctrl + a</td><td>beginning-of-line</td><td>\u8DF3\u5230\u884C\u9996</td></tr><tr><td><code> &quot;\\C-e&quot;</code></td><td>ctrl + e</td><td>end-of-line</td><td>\u8DF3\u5230\u884C\u5C3E</td></tr><tr><td><code>&quot;\\C-f&quot;</code></td><td>ctrl + f</td><td>forward-word</td><td>\u5411\u524D\u79FB\u52A8\u4E00\u4E2A\u5355\u8BCD</td></tr><tr><td><code>&quot;\\C-b&quot;</code></td><td>ctrl + b</td><td>backward-word</td><td>\u5411\u540E\u79FB\u52A8\u4E00\u4E2A\u5355\u8BCD</td></tr><tr><td><code>&quot;\\e[D&quot;</code></td><td>\u952E\u76D8\u5DE6\u65B9\u5411\u952E</td><td>backward-char</td><td>\u5149\u6807\u5411\u524D\u79FB\u52A8\u4E00\u4E2A\u5B57\u7B26</td></tr><tr><td><code>&quot;\\e[C&quot;</code></td><td>\u952E\u76D8\u53F3\u65B9\u5411\u952E</td><td>forward-char</td><td>\u5149\u6807\u5411\u540E\u79FB\u52A8\u4E00\u4E2A\u5B57\u7B26</td></tr><tr><td><code>&quot;\\e[B&quot;</code></td><td>\u952E\u76D8\u4E0B\u65B9\u5411\u952E</td><td>next-history</td><td>\u4E0B\u7FFB\u663E\u793A\u4E0B\u4E00\u4E2A\u547D\u4EE4</td></tr><tr><td><code>&quot;\\e[A&quot;</code></td><td>\u952E\u76D8\u4E0A\u65B9\u5411\u952E</td><td>previous-history</td><td>\u4E0A\u7FFB\u663E\u793A\u4E0A\u4E00\u4E2A\u547D\u4EE4</td></tr><tr><td><code>&quot;\\C-h&quot;</code></td><td>ctrl + h</td><td>backward-delete-char</td><td>\u5411\u540E\u5220\u9664\u4E00\u4E2A\u5B57\u7B26</td></tr><tr><td><code>&quot;\\C-?&quot;</code></td><td>ctrl + shift + /</td><td>backward-delete-char</td><td>\u5411\u540E\u5220\u9664\u4E00\u4E2A\u5B57\u7B26</td></tr><tr><td><code>&quot;\\C-u&quot;</code></td><td>ctrl + u</td><td>undo</td><td>\u64A4\u9500\u4E0A\u4E00\u4E2A\u547D\u4EE4\uFF0C\u76F8\u5F53\u4E8E\u6E05\u7A7A\u5F53\u524D\u884C</td></tr><tr><td><code>&quot;\\C-d&quot;</code></td><td>ctrl + d</td><td>delete-char</td><td>\u5220\u9664\u5F53\u524D\u5149\u6807\u6240\u5728\u5B57\u7B26</td></tr><tr><td><code>&quot;\\C-k&quot;</code></td><td>ctrl + k</td><td>kill-line</td><td>\u5220\u9664\u5F53\u524D\u5149\u6807\u5230\u884C\u5C3E\u7684\u6240\u6709\u5B57\u7B26</td></tr><tr><td><code>&quot;\\C-i&quot;</code></td><td>ctrl + i</td><td>complete</td><td>\u81EA\u52A8\u8865\u5168\uFF0C\u76F8\u5F53\u4E8E\u6572<code>TAB</code></td></tr><tr><td><code>&quot;\\C-j&quot;</code></td><td>ctrl + j</td><td>accept-line</td><td>\u7ED3\u675F\u5F53\u524D\u884C\uFF0C\u76F8\u5F53\u4E8E\u6572\u56DE\u8F66</td></tr><tr><td><code>&quot;\\C-m&quot;</code></td><td>ctrl + m</td><td>accept-line</td><td>\u7ED3\u675F\u5F53\u524D\u884C\uFF0C\u76F8\u5F53\u4E8E\u6572\u56DE\u8F66</td></tr><tr><td><code>&quot;\\C-w&quot;</code></td><td></td><td>backward-delete-word</td><td></td></tr><tr><td><code>&quot;\\C-x\\e[3~&quot;</code></td><td></td><td>backward-kill-line</td><td></td></tr><tr><td><code>&quot;\\e\\C-?&quot;</code></td><td></td><td>backward-kill-word</td><td></td></tr></tbody></table><ul><li>\u4EFB\u4F55\u65F6\u5019 <code>tab</code> \u952E\uFF0C\u4F1A\u6839\u636E\u5F53\u524D\u7684\u8F93\u5165\u7ED9\u51FA\u63D0\u793A</li><li>\u547D\u4EE4\u540E\u6572 <code>-</code> \u6216 <code>--</code> \uFF0C\u7136\u540E\u6309 <code>tab</code> \u952E\uFF0C\u53EF\u4EE5\u5C55\u793A\u51FA\u6B64\u547D\u4EE4\u5177\u4F53\u7684\u9009\u9879</li></ul><h4 id="\u81EA\u5B9A\u4E49\u5FEB\u6377\u952E" tabindex="-1"><a class="header-anchor" href="#\u81EA\u5B9A\u4E49\u5FEB\u6377\u952E" aria-hidden="true">#</a> \u81EA\u5B9A\u4E49\u5FEB\u6377\u952E</h4><p>\u5728\u5F53\u524D\u7528\u6237\u76EE\u5F55\u4E0B\u65B0\u5EFA<code>$USER_HOME/.arthas/conf/inputrc</code>\u6587\u4EF6\uFF0C\u52A0\u5165\u81EA\u5B9A\u4E49\u914D\u7F6E\u3002</p><p>\u5047\u8BBE\u6211\u662F vim \u7684\u91CD\u5EA6\u7528\u6237\uFF0C\u6211\u8981\u628A<code>ctrl+h</code>\u8BBE\u7F6E\u4E3A\u5149\u6807\u5411\u524D\u4E00\u4E2A\u5B57\u7B26\uFF0C\u5219\u8BBE\u7F6E\u5982\u4E0B\uFF0C\u9996\u5148\u62F7\u8D1D\u9ED8\u8BA4\u914D\u7F6E</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>&quot;\\C-a&quot;: beginning-of-line
&quot;\\C-e&quot;: end-of-line
&quot;\\C-f&quot;: forward-word
&quot;\\C-b&quot;: backward-word
@@ -1,4 +1,4 @@
import{_ as e,o as l,c as t,a,b as c,e as s,d as i,r as o}from"./app.391b0e4e.js";const p={},r=a("h1",{id:"logger",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#logger","aria-hidden":"true"},"#"),s(" logger")],-1),d={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-logger",target:"_blank",rel:"noopener noreferrer"},u=a("code",null,"logger",-1),v=s(" online tutorial"),g=i(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Print the logger information, update the logger level</p></div><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><h4 id="print-the-logger-information" tabindex="-1"><a class="header-anchor" href="#print-the-logger-information" aria-hidden="true">#</a> Print the logger information</h4><p>Take the following <code>logback.xml</code> as an example:</p><div class="language-xml ext-xml line-numbers-mode"><pre class="language-xml"><code><span class="token prolog">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
import{_ as e,o as l,c as t,a,b as c,e as s,d as i,r as o}from"./app.bd2aade7.js";const p={},r=a("h1",{id:"logger",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#logger","aria-hidden":"true"},"#"),s(" logger")],-1),d={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-logger",target:"_blank",rel:"noopener noreferrer"},u=a("code",null,"logger",-1),v=s(" online tutorial"),g=i(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Print the logger information, update the logger level</p></div><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><h4 id="print-the-logger-information" tabindex="-1"><a class="header-anchor" href="#print-the-logger-information" aria-hidden="true">#</a> Print the logger information</h4><p>Take the following <code>logback.xml</code> as an example:</p><div class="language-xml ext-xml line-numbers-mode"><pre class="language-xml"><code><span class="token prolog">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>configuration</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>appender</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>APPLICATION<span class="token punctuation">&quot;</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>ch.qos.logback.core.rolling.RollingFileAppender<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>file</span><span class="token punctuation">&gt;</span></span>app.log<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>file</span><span class="token punctuation">&gt;</span></span>
@@ -1,4 +1,4 @@
import{_ as e,o as l,c,a,b as t,e as s,d as o,r as i}from"./app.391b0e4e.js";const p={},d=a("h1",{id:"logger",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#logger","aria-hidden":"true"},"#"),s(" logger")],-1),r={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-logger",target:"_blank",rel:"noopener noreferrer"},u=a("code",null,"logger",-1),v=s("\u5728\u7EBF\u6559\u7A0B"),g=o(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u67E5\u770B logger \u4FE1\u606F\uFF0C\u66F4\u65B0 logger level</p></div><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><h4 id="\u67E5\u770B\u6240\u6709-logger-\u4FE1\u606F" tabindex="-1"><a class="header-anchor" href="#\u67E5\u770B\u6240\u6709-logger-\u4FE1\u606F" aria-hidden="true">#</a> \u67E5\u770B\u6240\u6709 logger \u4FE1\u606F</h4><p>\u4EE5\u4E0B\u9762\u7684<code>logback.xml</code>\u4E3A\u4F8B\uFF1A</p><div class="language-xml ext-xml line-numbers-mode"><pre class="language-xml"><code><span class="token prolog">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
import{_ as e,o as l,c,a,b as t,e as s,d as o,r as i}from"./app.bd2aade7.js";const p={},d=a("h1",{id:"logger",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#logger","aria-hidden":"true"},"#"),s(" logger")],-1),r={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-logger",target:"_blank",rel:"noopener noreferrer"},u=a("code",null,"logger",-1),v=s("\u5728\u7EBF\u6559\u7A0B"),g=o(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u67E5\u770B logger \u4FE1\u606F\uFF0C\u66F4\u65B0 logger level</p></div><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><h4 id="\u67E5\u770B\u6240\u6709-logger-\u4FE1\u606F" tabindex="-1"><a class="header-anchor" href="#\u67E5\u770B\u6240\u6709-logger-\u4FE1\u606F" aria-hidden="true">#</a> \u67E5\u770B\u6240\u6709 logger \u4FE1\u606F</h4><p>\u4EE5\u4E0B\u9762\u7684<code>logback.xml</code>\u4E3A\u4F8B\uFF1A</p><div class="language-xml ext-xml line-numbers-mode"><pre class="language-xml"><code><span class="token prolog">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>configuration</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>appender</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>APPLICATION<span class="token punctuation">&quot;</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>ch.qos.logback.core.rolling.RollingFileAppender<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>file</span><span class="token punctuation">&gt;</span></span>app.log<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>file</span><span class="token punctuation">&gt;</span></span>
@@ -1,4 +1,4 @@
import{_ as i,o as l,c as r,a,b as t,e,d as s,r as d}from"./app.391b0e4e.js";const c={},o=a("h1",{id:"\u624B\u52A8\u5B89\u88C5-arthas",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#\u624B\u52A8\u5B89\u88C5-arthas","aria-hidden":"true"},"#"),e(" \u624B\u52A8\u5B89\u88C5 Arthas")],-1),p=a("p",null,"\u4E0B\u8F7D\u6700\u65B0\u7248\u672C",-1),h=a("strong",null,"\u6700\u65B0\u7248\u672C\uFF0C\u70B9\u51FB\u4E0B\u8F7D",-1),u=e("\uFF1A"),v={href:"https://arthas.aliyun.com/download/latest_version?mirror=aliyun",target:"_blank",rel:"noopener noreferrer"},m=a("img",{src:"https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square",alt:"",title:"Arthas"},null,-1),g=s(`<li><p>\u89E3\u538B\u7F29 arthas \u7684\u538B\u7F29\u5305</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>unzip arthas-packaging-bin.zip
import{_ as i,o as l,c as r,a,b as t,e,d as s,r as d}from"./app.bd2aade7.js";const c={},o=a("h1",{id:"\u624B\u52A8\u5B89\u88C5-arthas",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#\u624B\u52A8\u5B89\u88C5-arthas","aria-hidden":"true"},"#"),e(" \u624B\u52A8\u5B89\u88C5 Arthas")],-1),p=a("p",null,"\u4E0B\u8F7D\u6700\u65B0\u7248\u672C",-1),h=a("strong",null,"\u6700\u65B0\u7248\u672C\uFF0C\u70B9\u51FB\u4E0B\u8F7D",-1),u=e("\uFF1A"),v={href:"https://arthas.aliyun.com/download/latest_version?mirror=aliyun",target:"_blank",rel:"noopener noreferrer"},m=a("img",{src:"https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square",alt:"",title:"Arthas"},null,-1),g=s(`<li><p>\u89E3\u538B\u7F29 arthas \u7684\u538B\u7F29\u5305</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>unzip arthas-packaging-bin.zip
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div></li><li><p>\u5B89\u88C5 Arthas</p><p>\u5B89\u88C5\u4E4B\u524D\u6700\u597D\u628A\u6240\u6709\u8001\u7248\u672C\u7684 Arthas \u5168\u90FD\u5220\u6389</p><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>sudo su admin
rm -rf /home/admin/.arthas/lib/*
cd arthas
@@ -1,4 +1,4 @@
import{_ as o,o as i,c as l,a,b as t,e,d as s,r}from"./app.391b0e4e.js";const c={},d=a("h1",{id:"manually-install-arthas",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#manually-install-arthas","aria-hidden":"true"},"#"),e(" Manually Install Arthas")],-1),p=a("p",null,"Download the latest version",-1),h=a("strong",null,"Latest version, Click To Download",-1),u=e(": "),m={href:"https://arthas.aliyun.com/download/latest_version",target:"_blank",rel:"noopener noreferrer"},v=a("img",{src:"https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square",alt:"",title:"Arthas"},null,-1),b=s(`<li><p>Unzip zip file</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">unzip</span> arthas-packaging-bin.zip
import{_ as o,o as i,c as l,a,b as t,e,d as s,r}from"./app.bd2aade7.js";const c={},d=a("h1",{id:"manually-install-arthas",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#manually-install-arthas","aria-hidden":"true"},"#"),e(" Manually Install Arthas")],-1),p=a("p",null,"Download the latest version",-1),h=a("strong",null,"Latest version, Click To Download",-1),u=e(": "),m={href:"https://arthas.aliyun.com/download/latest_version",target:"_blank",rel:"noopener noreferrer"},v=a("img",{src:"https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square",alt:"",title:"Arthas"},null,-1),b=s(`<li><p>Unzip zip file</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">unzip</span> arthas-packaging-bin.zip
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div></li><li><p>Install Arthas</p><p>It is recommended to completely remove all old versions of Arthas before installation.</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">sudo</span> <span class="token function">su</span> admin
<span class="token function">rm</span> -rf /home/admin/.arthas/lib/* <span class="token comment"># remove all the leftover of the old outdated Arthas</span>
<span class="token builtin class-name">cd</span> arthas
@@ -1,4 +1,4 @@
import{_ as r,o as i,c as d,a as e,b as n,e as a,d as s,r as l}from"./app.391b0e4e.js";const o={},c=e("h1",{id:"mbean",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mbean","aria-hidden":"true"},"#"),a(" mbean")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-mbean",target:"_blank",rel:"noopener noreferrer"},m=e("code",null,"mbean",-1),p=a(" online tutorial"),u=s(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>show Mbean information</p></div><p>This command can show or monitor Mbean attribute information.</p><h3 id="parameters" tabindex="-1"><a class="header-anchor" href="#parameters" aria-hidden="true">#</a> Parameters</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><em>name-pattern</em></td><td style="text-align:left;">pattern for the Mbean name</td></tr><tr><td style="text-align:right;"><em>attribute-pattern</em></td><td style="text-align:left;">pattern for the attribute name</td></tr><tr><td style="text-align:right;">[m]</td><td style="text-align:left;">show meta information</td></tr><tr><td style="text-align:right;">[i:]</td><td style="text-align:left;">specify the interval to refresh attribute value (ms)</td></tr><tr><td style="text-align:right;">[n:]</td><td style="text-align:left;">execution times</td></tr><tr><td style="text-align:right;">[E]</td><td style="text-align:left;">turn on regex matching while the default mode is wildcard matching. Only effect on the attribute name</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><p>show all Mbean names:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>mbean
import{_ as r,o as i,c as d,a as e,b as n,e as a,d as s,r as l}from"./app.bd2aade7.js";const o={},c=e("h1",{id:"mbean",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mbean","aria-hidden":"true"},"#"),a(" mbean")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-mbean",target:"_blank",rel:"noopener noreferrer"},m=e("code",null,"mbean",-1),p=a(" online tutorial"),u=s(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>show Mbean information</p></div><p>This command can show or monitor Mbean attribute information.</p><h3 id="parameters" tabindex="-1"><a class="header-anchor" href="#parameters" aria-hidden="true">#</a> Parameters</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><em>name-pattern</em></td><td style="text-align:left;">pattern for the Mbean name</td></tr><tr><td style="text-align:right;"><em>attribute-pattern</em></td><td style="text-align:left;">pattern for the attribute name</td></tr><tr><td style="text-align:right;">[m]</td><td style="text-align:left;">show meta information</td></tr><tr><td style="text-align:right;">[i:]</td><td style="text-align:left;">specify the interval to refresh attribute value (ms)</td></tr><tr><td style="text-align:right;">[n:]</td><td style="text-align:left;">execution times</td></tr><tr><td style="text-align:right;">[E]</td><td style="text-align:left;">turn on regex matching while the default mode is wildcard matching. Only effect on the attribute name</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><p>show all Mbean names:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>mbean
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>show meta data of Mbean:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>mbean -m java.lang:type<span class="token operator">=</span>Threading
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>show attributes of Mbean:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>mbean java.lang:type<span class="token operator">=</span>Threading
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Mbean name support wildcard matcher:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>mbean java.lang:type<span class="token operator">=</span>Th*
@@ -1,4 +1,4 @@
import{_ as d,o as r,c as i,a as e,b as n,e as a,d as s,r as l}from"./app.391b0e4e.js";const o={},c=e("h1",{id:"mbean",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mbean","aria-hidden":"true"},"#"),a(" mbean")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-mbean",target:"_blank",rel:"noopener noreferrer"},p=e("code",null,"mbean",-1),m=a("\u5728\u7EBF\u6559\u7A0B"),b=s(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u67E5\u770B Mbean \u7684\u4FE1\u606F</p></div><p>\u8FD9\u4E2A\u547D\u4EE4\u53EF\u4EE5\u4FBF\u6377\u7684\u67E5\u770B\u6216\u76D1\u63A7 Mbean \u7684\u5C5E\u6027\u4FE1\u606F\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>name-pattern</em></td><td style="text-align:left;">\u540D\u79F0\u8868\u8FBE\u5F0F\u5339\u914D</td></tr><tr><td style="text-align:right;"><em>attribute-pattern</em></td><td style="text-align:left;">\u5C5E\u6027\u540D\u8868\u8FBE\u5F0F\u5339\u914D</td></tr><tr><td style="text-align:right;">[m]</td><td style="text-align:left;">\u67E5\u770B\u5143\u4FE1\u606F</td></tr><tr><td style="text-align:right;">[i:]</td><td style="text-align:left;">\u5237\u65B0\u5C5E\u6027\u503C\u7684\u65F6\u95F4\u95F4\u9694 (ms)</td></tr><tr><td style="text-align:right;">[n:]</td><td style="text-align:left;">\u5237\u65B0\u5C5E\u6027\u503C\u7684\u6B21\u6570</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\u3002\u4EC5\u5BF9\u5C5E\u6027\u540D\u6709\u6548</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><p>\u5217\u51FA\u6240\u6709 Mbean \u7684\u540D\u79F0\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>mbean
import{_ as d,o as r,c as i,a as e,b as n,e as a,d as s,r as l}from"./app.bd2aade7.js";const o={},c=e("h1",{id:"mbean",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mbean","aria-hidden":"true"},"#"),a(" mbean")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-mbean",target:"_blank",rel:"noopener noreferrer"},p=e("code",null,"mbean",-1),m=a("\u5728\u7EBF\u6559\u7A0B"),b=s(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u67E5\u770B Mbean \u7684\u4FE1\u606F</p></div><p>\u8FD9\u4E2A\u547D\u4EE4\u53EF\u4EE5\u4FBF\u6377\u7684\u67E5\u770B\u6216\u76D1\u63A7 Mbean \u7684\u5C5E\u6027\u4FE1\u606F\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>name-pattern</em></td><td style="text-align:left;">\u540D\u79F0\u8868\u8FBE\u5F0F\u5339\u914D</td></tr><tr><td style="text-align:right;"><em>attribute-pattern</em></td><td style="text-align:left;">\u5C5E\u6027\u540D\u8868\u8FBE\u5F0F\u5339\u914D</td></tr><tr><td style="text-align:right;">[m]</td><td style="text-align:left;">\u67E5\u770B\u5143\u4FE1\u606F</td></tr><tr><td style="text-align:right;">[i:]</td><td style="text-align:left;">\u5237\u65B0\u5C5E\u6027\u503C\u7684\u65F6\u95F4\u95F4\u9694 (ms)</td></tr><tr><td style="text-align:right;">[n:]</td><td style="text-align:left;">\u5237\u65B0\u5C5E\u6027\u503C\u7684\u6B21\u6570</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\u3002\u4EC5\u5BF9\u5C5E\u6027\u540D\u6709\u6548</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><p>\u5217\u51FA\u6240\u6709 Mbean \u7684\u540D\u79F0\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>mbean
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>\u67E5\u770B Mbean \u7684\u5143\u4FE1\u606F\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>mbean -m java.lang:type<span class="token operator">=</span>Threading
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>\u67E5\u770B mbean \u5C5E\u6027\u4FE1\u606F\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>mbean java.lang:type<span class="token operator">=</span>Threading
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>mbean \u7684 name \u652F\u6301\u901A\u914D\u7B26\u5339\u914D\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>mbean java.lang:type<span class="token operator">=</span>Th*
@@ -1,4 +1,4 @@
import{_ as r,o as d,c as l,a as e,b as a,w as o,e as s,d as i,r as t}from"./app.391b0e4e.js";const m={},u=e("h1",{id:"mc",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mc","aria-hidden":"true"},"#"),s(" mc")],-1),p={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-mc-retransform",target:"_blank",rel:"noopener noreferrer"},_=e("code",null,"mc-retransform",-1),h=s("\u5728\u7EBF\u6559\u7A0B"),v=i(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>Memory Compiler/\u5185\u5B58\u7F16\u8BD1\u5668\uFF0C\u7F16\u8BD1<code>.java</code>\u6587\u4EF6\u751F\u6210<code>.class</code>\u3002</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">mc</span> /tmp/Test.java
import{_ as r,o as d,c as l,a as e,b as a,w as o,e as s,d as i,r as t}from"./app.bd2aade7.js";const m={},u=e("h1",{id:"mc",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mc","aria-hidden":"true"},"#"),s(" mc")],-1),p={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-mc-retransform",target:"_blank",rel:"noopener noreferrer"},_=e("code",null,"mc-retransform",-1),h=s("\u5728\u7EBF\u6559\u7A0B"),v=i(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>Memory Compiler/\u5185\u5B58\u7F16\u8BD1\u5668\uFF0C\u7F16\u8BD1<code>.java</code>\u6587\u4EF6\u751F\u6210<code>.class</code>\u3002</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">mc</span> /tmp/Test.java
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>\u53EF\u4EE5\u901A\u8FC7<code>-c</code>\u53C2\u6570\u6307\u5B9A classloader\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">mc</span> -c 327a647b /tmp/Test.java
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>\u4E5F\u53EF\u4EE5\u901A\u8FC7<code>--classLoaderClass</code>\u53C2\u6570\u6307\u5B9A ClassLoader\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">mc</span> --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader /tmp/UserController.java -d /tmp
Memory compiler output:
@@ -1,4 +1,4 @@
import{_ as i,o as l,c as d,a as e,b as a,w as o,e as s,d as r,r as t}from"./app.391b0e4e.js";const m={},p=e("h1",{id:"mc",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mc","aria-hidden":"true"},"#"),s(" mc")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-mc-retransform",target:"_blank",rel:"noopener noreferrer"},h=e("code",null,"mc-retransform",-1),_=s(" online tutorial"),v=r(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Memory compiler, compiles <code>.java</code> files into <code>.class</code> files in memory.</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">mc</span> /tmp/Test.java
import{_ as i,o as l,c as d,a as e,b as a,w as o,e as s,d as r,r as t}from"./app.bd2aade7.js";const m={},p=e("h1",{id:"mc",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mc","aria-hidden":"true"},"#"),s(" mc")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-mc-retransform",target:"_blank",rel:"noopener noreferrer"},h=e("code",null,"mc-retransform",-1),_=s(" online tutorial"),v=r(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Memory compiler, compiles <code>.java</code> files into <code>.class</code> files in memory.</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">mc</span> /tmp/Test.java
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>The classloader can be specified with the <code>-c</code> option:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token function">mc</span> -c 327a647b /tmp/Test.java
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>You can also specify the ClassLoader with the <code>--classLoaderClass</code> option:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">mc</span> --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader /tmp/UserController.java -d /tmp
Memory compiler output:
@@ -1,4 +1,4 @@
import{_ as e,o as n,c as s,d as a}from"./app.391b0e4e.js";const i={},r=a(`<h1 id="memory" tabindex="-1"><a class="header-anchor" href="#memory" aria-hidden="true">#</a> memory</h1><p>View the JVM memory information.</p><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ memory
import{_ as e,o as n,c as s,d as a}from"./app.bd2aade7.js";const i={},r=a(`<h1 id="memory" tabindex="-1"><a class="header-anchor" href="#memory" aria-hidden="true">#</a> memory</h1><p>View the JVM memory information.</p><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ memory
Memory used total max usage
heap 32M 256M 4096M <span class="token number">0.79</span>%
g1_eden_space 11M 68M -1 <span class="token number">16.18</span>%
@@ -1,4 +1,4 @@
import{_ as e,o as n,c as i,d}from"./app.391b0e4e.js";const s={},a=d(`<h1 id="memory" tabindex="-1"><a class="header-anchor" href="#memory" aria-hidden="true">#</a> memory</h1><p>\u67E5\u770B JVM \u5185\u5B58\u4FE1\u606F\u3002</p><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ memory
import{_ as e,o as n,c as i,d}from"./app.bd2aade7.js";const s={},a=d(`<h1 id="memory" tabindex="-1"><a class="header-anchor" href="#memory" aria-hidden="true">#</a> memory</h1><p>\u67E5\u770B JVM \u5185\u5B58\u4FE1\u606F\u3002</p><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ memory
Memory used total max usage
heap 32M 256M 4096M 0.79%
g1_eden_space 11M 68M -1 16.18%
@@ -1,4 +1,4 @@
import{_ as e,o as t,c as l,a as s,b as i,e as n,d as c,r as p}from"./app.391b0e4e.js";const r={},o=s("h1",{id:"monitor",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#monitor","aria-hidden":"true"},"#"),n(" monitor")],-1),m={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-monitor",target:"_blank",rel:"noopener noreferrer"},d=s("code",null,"monitor",-1),u=n("\u5728\u7EBF\u6559\u7A0B"),b=c(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u65B9\u6CD5\u6267\u884C\u76D1\u63A7</p></div><p>\u5BF9\u5339\u914D <code>class-pattern</code>\uFF0F<code>method-pattern</code>\uFF0F<code>condition-express</code>\u7684\u7C7B\u3001\u65B9\u6CD5\u7684\u8C03\u7528\u8FDB\u884C\u76D1\u63A7\u3002</p><p><code>monitor</code> \u547D\u4EE4\u662F\u4E00\u4E2A\u975E\u5B9E\u65F6\u8FD4\u56DE\u547D\u4EE4.</p><p>\u5B9E\u65F6\u8FD4\u56DE\u547D\u4EE4\u662F\u8F93\u5165\u4E4B\u540E\u7ACB\u5373\u8FD4\u56DE\uFF0C\u800C\u975E\u5B9E\u65F6\u8FD4\u56DE\u7684\u547D\u4EE4\uFF0C\u5219\u662F\u4E0D\u65AD\u7684\u7B49\u5F85\u76EE\u6807 Java \u8FDB\u7A0B\u8FD4\u56DE\u4FE1\u606F\uFF0C\u76F4\u5230\u7528\u6237\u8F93\u5165 <code>Ctrl+C</code> \u4E3A\u6B62\u3002</p><p>\u670D\u52A1\u7AEF\u662F\u4EE5\u4EFB\u52A1\u7684\u5F62\u5F0F\u5728\u540E\u53F0\u8DD1\u4EFB\u52A1\uFF0C\u690D\u5165\u7684\u4EE3\u7801\u968F\u7740\u4EFB\u52A1\u7684\u4E2D\u6B62\u800C\u4E0D\u4F1A\u88AB\u6267\u884C\uFF0C\u6240\u4EE5\u4EFB\u52A1\u5173\u95ED\u540E\uFF0C\u4E0D\u4F1A\u5BF9\u539F\u6709\u6027\u80FD\u4EA7\u751F\u592A\u5927\u5F71\u54CD\uFF0C\u800C\u4E14\u539F\u5219\u4E0A\uFF0C\u4EFB\u4F55 Arthas \u547D\u4EE4\u4E0D\u4F1A\u5F15\u8D77\u539F\u6709\u4E1A\u52A1\u903B\u8F91\u7684\u6539\u53D8\u3002</p><h3 id="\u76D1\u63A7\u7684\u7EF4\u5EA6\u8BF4\u660E" tabindex="-1"><a class="header-anchor" href="#\u76D1\u63A7\u7684\u7EF4\u5EA6\u8BF4\u660E" aria-hidden="true">#</a> \u76D1\u63A7\u7684\u7EF4\u5EA6\u8BF4\u660E</h3><table><thead><tr><th style="text-align:right;">\u76D1\u63A7\u9879</th><th style="text-align:left;">\u8BF4\u660E</th></tr></thead><tbody><tr><td style="text-align:right;">timestamp</td><td style="text-align:left;">\u65F6\u95F4\u6233</td></tr><tr><td style="text-align:right;">class</td><td style="text-align:left;">Java \u7C7B</td></tr><tr><td style="text-align:right;">method</td><td style="text-align:left;">\u65B9\u6CD5\uFF08\u6784\u9020\u65B9\u6CD5\u3001\u666E\u901A\u65B9\u6CD5\uFF09</td></tr><tr><td style="text-align:right;">total</td><td style="text-align:left;">\u8C03\u7528\u6B21\u6570</td></tr><tr><td style="text-align:right;">success</td><td style="text-align:left;">\u6210\u529F\u6B21\u6570</td></tr><tr><td style="text-align:right;">fail</td><td style="text-align:left;">\u5931\u8D25\u6B21\u6570</td></tr><tr><td style="text-align:right;">rt</td><td style="text-align:left;">\u5E73\u5747 RT</td></tr><tr><td style="text-align:right;">fail-rate</td><td style="text-align:left;">\u5931\u8D25\u7387</td></tr></tbody></table><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><p>\u65B9\u6CD5\u62E5\u6709\u4E00\u4E2A\u547D\u540D\u53C2\u6570 <code>[c:]</code>\uFF0C\u610F\u601D\u662F\u7EDF\u8BA1\u5468\u671F\uFF08cycle of output\uFF09\uFF0C\u62E5\u6709\u4E00\u4E2A\u6574\u578B\u7684\u53C2\u6570\u503C</p><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>[c:]</code></td><td style="text-align:left;">\u7EDF\u8BA1\u5468\u671F\uFF0C\u9ED8\u8BA4\u503C\u4E3A 120 \u79D2</td></tr><tr><td style="text-align:right;">[b]</td><td style="text-align:left;">\u5728<strong>\u65B9\u6CD5\u8C03\u7528\u4E4B\u524D</strong>\u8BA1\u7B97 condition-express</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ monitor -c <span class="token number">5</span> demo.MathGame primeFactors
import{_ as e,o as t,c as l,a as s,b as i,e as n,d as c,r as p}from"./app.bd2aade7.js";const r={},o=s("h1",{id:"monitor",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#monitor","aria-hidden":"true"},"#"),n(" monitor")],-1),m={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-monitor",target:"_blank",rel:"noopener noreferrer"},d=s("code",null,"monitor",-1),u=n("\u5728\u7EBF\u6559\u7A0B"),b=c(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u65B9\u6CD5\u6267\u884C\u76D1\u63A7</p></div><p>\u5BF9\u5339\u914D <code>class-pattern</code>\uFF0F<code>method-pattern</code>\uFF0F<code>condition-express</code>\u7684\u7C7B\u3001\u65B9\u6CD5\u7684\u8C03\u7528\u8FDB\u884C\u76D1\u63A7\u3002</p><p><code>monitor</code> \u547D\u4EE4\u662F\u4E00\u4E2A\u975E\u5B9E\u65F6\u8FD4\u56DE\u547D\u4EE4.</p><p>\u5B9E\u65F6\u8FD4\u56DE\u547D\u4EE4\u662F\u8F93\u5165\u4E4B\u540E\u7ACB\u5373\u8FD4\u56DE\uFF0C\u800C\u975E\u5B9E\u65F6\u8FD4\u56DE\u7684\u547D\u4EE4\uFF0C\u5219\u662F\u4E0D\u65AD\u7684\u7B49\u5F85\u76EE\u6807 Java \u8FDB\u7A0B\u8FD4\u56DE\u4FE1\u606F\uFF0C\u76F4\u5230\u7528\u6237\u8F93\u5165 <code>Ctrl+C</code> \u4E3A\u6B62\u3002</p><p>\u670D\u52A1\u7AEF\u662F\u4EE5\u4EFB\u52A1\u7684\u5F62\u5F0F\u5728\u540E\u53F0\u8DD1\u4EFB\u52A1\uFF0C\u690D\u5165\u7684\u4EE3\u7801\u968F\u7740\u4EFB\u52A1\u7684\u4E2D\u6B62\u800C\u4E0D\u4F1A\u88AB\u6267\u884C\uFF0C\u6240\u4EE5\u4EFB\u52A1\u5173\u95ED\u540E\uFF0C\u4E0D\u4F1A\u5BF9\u539F\u6709\u6027\u80FD\u4EA7\u751F\u592A\u5927\u5F71\u54CD\uFF0C\u800C\u4E14\u539F\u5219\u4E0A\uFF0C\u4EFB\u4F55 Arthas \u547D\u4EE4\u4E0D\u4F1A\u5F15\u8D77\u539F\u6709\u4E1A\u52A1\u903B\u8F91\u7684\u6539\u53D8\u3002</p><h3 id="\u76D1\u63A7\u7684\u7EF4\u5EA6\u8BF4\u660E" tabindex="-1"><a class="header-anchor" href="#\u76D1\u63A7\u7684\u7EF4\u5EA6\u8BF4\u660E" aria-hidden="true">#</a> \u76D1\u63A7\u7684\u7EF4\u5EA6\u8BF4\u660E</h3><table><thead><tr><th style="text-align:right;">\u76D1\u63A7\u9879</th><th style="text-align:left;">\u8BF4\u660E</th></tr></thead><tbody><tr><td style="text-align:right;">timestamp</td><td style="text-align:left;">\u65F6\u95F4\u6233</td></tr><tr><td style="text-align:right;">class</td><td style="text-align:left;">Java \u7C7B</td></tr><tr><td style="text-align:right;">method</td><td style="text-align:left;">\u65B9\u6CD5\uFF08\u6784\u9020\u65B9\u6CD5\u3001\u666E\u901A\u65B9\u6CD5\uFF09</td></tr><tr><td style="text-align:right;">total</td><td style="text-align:left;">\u8C03\u7528\u6B21\u6570</td></tr><tr><td style="text-align:right;">success</td><td style="text-align:left;">\u6210\u529F\u6B21\u6570</td></tr><tr><td style="text-align:right;">fail</td><td style="text-align:left;">\u5931\u8D25\u6B21\u6570</td></tr><tr><td style="text-align:right;">rt</td><td style="text-align:left;">\u5E73\u5747 RT</td></tr><tr><td style="text-align:right;">fail-rate</td><td style="text-align:left;">\u5931\u8D25\u7387</td></tr></tbody></table><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><p>\u65B9\u6CD5\u62E5\u6709\u4E00\u4E2A\u547D\u540D\u53C2\u6570 <code>[c:]</code>\uFF0C\u610F\u601D\u662F\u7EDF\u8BA1\u5468\u671F\uFF08cycle of output\uFF09\uFF0C\u62E5\u6709\u4E00\u4E2A\u6574\u578B\u7684\u53C2\u6570\u503C</p><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>[c:]</code></td><td style="text-align:left;">\u7EDF\u8BA1\u5468\u671F\uFF0C\u9ED8\u8BA4\u503C\u4E3A 120 \u79D2</td></tr><tr><td style="text-align:right;">[b]</td><td style="text-align:left;">\u5728<strong>\u65B9\u6CD5\u8C03\u7528\u4E4B\u524D</strong>\u8BA1\u7B97 condition-express</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ monitor -c <span class="token number">5</span> demo.MathGame primeFactors
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">94</span> ms.
timestamp class method total success fail avg-rt<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> fail-rate
@@ -1,4 +1,4 @@
import{_ as e,o as t,c as l,a as s,b as i,e as n,d as o,r}from"./app.391b0e4e.js";const c={},p=s("h1",{id:"monitor",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#monitor","aria-hidden":"true"},"#"),n(" monitor")],-1),m={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-monitor",target:"_blank",rel:"noopener noreferrer"},d=s("code",null,"monitor",-1),u=n(" online tutorial"),b=o(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Monitor method invocation.</p></div><p>Monitor invocation for the method matched with <code>class-pattern</code> and <code>method-pattern</code> and filter by <code>condition-expression</code>.</p><p><code>monitor</code> is not a command returning immediately.</p><p>A command returning immediately is a command immediately returns with the result after the command is input, while a non-immediate returning command will keep outputting the information from the target JVM process until user presses <code>Ctrl+C</code>.</p><p>On Arthas&#39;s server side, the command is running as a background job, but the weaved code will not take further effect once the job is terminated, therefore, it will not impact the performance after the job quits. Furthermore, Arthas is designed to have no side effect to the business logic.</p><h3 id="items-to-monitor" tabindex="-1"><a class="header-anchor" href="#items-to-monitor" aria-hidden="true">#</a> Items to monitor</h3><table><thead><tr><th style="text-align:right;">Item</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;">timestamp</td><td style="text-align:left;">timestamp</td></tr><tr><td style="text-align:right;">class</td><td style="text-align:left;">Java class</td></tr><tr><td style="text-align:right;">method</td><td style="text-align:left;">method (constructor and regular methods)</td></tr><tr><td style="text-align:right;">total</td><td style="text-align:left;">calling times</td></tr><tr><td style="text-align:right;">success</td><td style="text-align:left;">success count</td></tr><tr><td style="text-align:right;">fail</td><td style="text-align:left;">failure count</td></tr><tr><td style="text-align:right;">rt</td><td style="text-align:left;">average RT</td></tr><tr><td style="text-align:right;">fail-rate</td><td style="text-align:left;">failure ratio</td></tr></tbody></table><h3 id="parameters" tabindex="-1"><a class="header-anchor" href="#parameters" aria-hidden="true">#</a> Parameters</h3><p>Parameter <code>[c:]</code> stands for cycles of statistics. Its value is an integer value in seconds.</p><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><em>class-pattern</em></td><td style="text-align:left;">pattern for the class name</td></tr><tr><td style="text-align:right;"><em>method-pattern</em></td><td style="text-align:left;">pattern for the method name</td></tr><tr><td style="text-align:right;"><em>condition-expression</em></td><td style="text-align:left;">condition expression for filtering method calls</td></tr><tr><td style="text-align:right;"><code>[E]</code></td><td style="text-align:left;">turn on regex matching while the default is wildcard matching</td></tr><tr><td style="text-align:right;"><code>[c:]</code></td><td style="text-align:left;">cycle of statistics, the default value: <code>120</code>s</td></tr><tr><td style="text-align:right;"><code>[b]</code></td><td style="text-align:left;">evaluate the condition-expression before method invoke</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ monitor -c <span class="token number">5</span> demo.MathGame primeFactors
import{_ as e,o as t,c as l,a as s,b as i,e as n,d as o,r}from"./app.bd2aade7.js";const c={},p=s("h1",{id:"monitor",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#monitor","aria-hidden":"true"},"#"),n(" monitor")],-1),m={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-monitor",target:"_blank",rel:"noopener noreferrer"},d=s("code",null,"monitor",-1),u=n(" online tutorial"),b=o(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Monitor method invocation.</p></div><p>Monitor invocation for the method matched with <code>class-pattern</code> and <code>method-pattern</code> and filter by <code>condition-expression</code>.</p><p><code>monitor</code> is not a command returning immediately.</p><p>A command returning immediately is a command immediately returns with the result after the command is input, while a non-immediate returning command will keep outputting the information from the target JVM process until user presses <code>Ctrl+C</code>.</p><p>On Arthas&#39;s server side, the command is running as a background job, but the weaved code will not take further effect once the job is terminated, therefore, it will not impact the performance after the job quits. Furthermore, Arthas is designed to have no side effect to the business logic.</p><h3 id="items-to-monitor" tabindex="-1"><a class="header-anchor" href="#items-to-monitor" aria-hidden="true">#</a> Items to monitor</h3><table><thead><tr><th style="text-align:right;">Item</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;">timestamp</td><td style="text-align:left;">timestamp</td></tr><tr><td style="text-align:right;">class</td><td style="text-align:left;">Java class</td></tr><tr><td style="text-align:right;">method</td><td style="text-align:left;">method (constructor and regular methods)</td></tr><tr><td style="text-align:right;">total</td><td style="text-align:left;">calling times</td></tr><tr><td style="text-align:right;">success</td><td style="text-align:left;">success count</td></tr><tr><td style="text-align:right;">fail</td><td style="text-align:left;">failure count</td></tr><tr><td style="text-align:right;">rt</td><td style="text-align:left;">average RT</td></tr><tr><td style="text-align:right;">fail-rate</td><td style="text-align:left;">failure ratio</td></tr></tbody></table><h3 id="parameters" tabindex="-1"><a class="header-anchor" href="#parameters" aria-hidden="true">#</a> Parameters</h3><p>Parameter <code>[c:]</code> stands for cycles of statistics. Its value is an integer value in seconds.</p><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><em>class-pattern</em></td><td style="text-align:left;">pattern for the class name</td></tr><tr><td style="text-align:right;"><em>method-pattern</em></td><td style="text-align:left;">pattern for the method name</td></tr><tr><td style="text-align:right;"><em>condition-expression</em></td><td style="text-align:left;">condition expression for filtering method calls</td></tr><tr><td style="text-align:right;"><code>[E]</code></td><td style="text-align:left;">turn on regex matching while the default is wildcard matching</td></tr><tr><td style="text-align:right;"><code>[c:]</code></td><td style="text-align:left;">cycle of statistics, the default value: <code>120</code>s</td></tr><tr><td style="text-align:right;"><code>[b]</code></td><td style="text-align:left;">evaluate the condition-expression before method invoke</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ monitor -c <span class="token number">5</span> demo.MathGame primeFactors
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">94</span> ms.
timestamp class method total success fail avg-rt<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> fail-rate
@@ -1,4 +1,4 @@
import{_ as o,o as l,c as i,a as n,b as e,e as a,d as t,r as p}from"./app.391b0e4e.js";const r={},c=n("h1",{id:"ognl",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#ognl","aria-hidden":"true"},"#"),a(" ognl")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-ognl",target:"_blank",rel:"noopener noreferrer"},d=n("code",null,"ognl",-1),g=a(" online tutorial"),v=t('<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Execute ognl expression.</p></div><p>Since 3.0.5.</p><h3 id="parameters" tabindex="-1"><a class="header-anchor" href="#parameters" aria-hidden="true">#</a> Parameters</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><em>express</em></td><td style="text-align:left;">expression to be executed</td></tr><tr><td style="text-align:right;"><code>[c:]</code></td><td style="text-align:left;">The hashcode of the ClassLoader that executes the expression, default ClassLoader is SystemClassLoader.</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">The class name of the ClassLoader that executes the expression.</td></tr><tr><td style="text-align:right;">[x]</td><td style="text-align:left;">Expand level of object (1 by default).</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3>',5),k={href:"https://github.com/alibaba/arthas/issues/71",target:"_blank",rel:"noopener noreferrer"},b=a("Special usages"),m={href:"https://commons.apache.org/proper/commons-ognl/language-guide.html",target:"_blank",rel:"noopener noreferrer"},h=a("OGNL official guide"),f=t(`<p>Call static method:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ ognl <span class="token string">&#39;@java.lang.System@out.println(&quot;hello&quot;)&#39;</span>
import{_ as o,o as l,c as i,a as n,b as e,e as a,d as t,r as p}from"./app.bd2aade7.js";const r={},c=n("h1",{id:"ognl",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#ognl","aria-hidden":"true"},"#"),a(" ognl")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-ognl",target:"_blank",rel:"noopener noreferrer"},d=n("code",null,"ognl",-1),g=a(" online tutorial"),v=t('<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Execute ognl expression.</p></div><p>Since 3.0.5.</p><h3 id="parameters" tabindex="-1"><a class="header-anchor" href="#parameters" aria-hidden="true">#</a> Parameters</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><em>express</em></td><td style="text-align:left;">expression to be executed</td></tr><tr><td style="text-align:right;"><code>[c:]</code></td><td style="text-align:left;">The hashcode of the ClassLoader that executes the expression, default ClassLoader is SystemClassLoader.</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">The class name of the ClassLoader that executes the expression.</td></tr><tr><td style="text-align:right;">[x]</td><td style="text-align:left;">Expand level of object (1 by default).</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3>',5),k={href:"https://github.com/alibaba/arthas/issues/71",target:"_blank",rel:"noopener noreferrer"},b=a("Special usages"),m={href:"https://commons.apache.org/proper/commons-ognl/language-guide.html",target:"_blank",rel:"noopener noreferrer"},h=a("OGNL official guide"),f=t(`<p>Call static method:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ ognl <span class="token string">&#39;@java.lang.System@out.println(&quot;hello&quot;)&#39;</span>
null
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>Get static field:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ ognl <span class="token string">&#39;@demo.MathGame@random&#39;</span>
@Random<span class="token punctuation">[</span>
@@ -1,4 +1,4 @@
import{_ as o,o as l,c as i,a as n,b as e,e as s,d as t,r as p}from"./app.391b0e4e.js";const r={},c=n("h1",{id:"ognl",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#ognl","aria-hidden":"true"},"#"),s(" ognl")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-ognl",target:"_blank",rel:"noopener noreferrer"},d=n("code",null,"ognl",-1),g=s("\u5728\u7EBF\u6559\u7A0B"),v=t('<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u6267\u884C ognl \u8868\u8FBE\u5F0F</p></div><p>\u4ECE 3.0.5 \u7248\u672C\u589E\u52A0</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>express</em></td><td style="text-align:left;">\u6267\u884C\u7684\u8868\u8FBE\u5F0F</td></tr><tr><td style="text-align:right;"><code>[c:]</code></td><td style="text-align:left;">\u6267\u884C\u8868\u8FBE\u5F0F\u7684 ClassLoader \u7684 hashcode\uFF0C\u9ED8\u8BA4\u503C\u662F SystemClassLoader</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">\u6307\u5B9A\u6267\u884C\u8868\u8FBE\u5F0F\u7684 ClassLoader \u7684 class name</td></tr><tr><td style="text-align:right;">[x]</td><td style="text-align:left;">\u7ED3\u679C\u5BF9\u8C61\u7684\u5C55\u5F00\u5C42\u6B21\uFF0C\u9ED8\u8BA4\u503C 1</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3>',5),k=s("OGNL \u7279\u6B8A\u7528\u6CD5\u8BF7\u53C2\u8003\uFF1A"),m={href:"https://github.com/alibaba/arthas/issues/71",target:"_blank",rel:"noopener noreferrer"},b=s("https://github.com/alibaba/arthas/issues/71"),h=s("OGNL \u8868\u8FBE\u5F0F\u5B98\u65B9\u6307\u5357\uFF1A"),f={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"),_=t(`<p>\u8C03\u7528\u9759\u6001\u51FD\u6570\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ ognl <span class="token string">&#39;@java.lang.System@out.println(&quot;hello&quot;)&#39;</span>
import{_ as o,o as l,c as i,a as n,b as e,e as s,d as t,r as p}from"./app.bd2aade7.js";const r={},c=n("h1",{id:"ognl",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#ognl","aria-hidden":"true"},"#"),s(" ognl")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-ognl",target:"_blank",rel:"noopener noreferrer"},d=n("code",null,"ognl",-1),g=s("\u5728\u7EBF\u6559\u7A0B"),v=t('<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u6267\u884C ognl \u8868\u8FBE\u5F0F</p></div><p>\u4ECE 3.0.5 \u7248\u672C\u589E\u52A0</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>express</em></td><td style="text-align:left;">\u6267\u884C\u7684\u8868\u8FBE\u5F0F</td></tr><tr><td style="text-align:right;"><code>[c:]</code></td><td style="text-align:left;">\u6267\u884C\u8868\u8FBE\u5F0F\u7684 ClassLoader \u7684 hashcode\uFF0C\u9ED8\u8BA4\u503C\u662F SystemClassLoader</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">\u6307\u5B9A\u6267\u884C\u8868\u8FBE\u5F0F\u7684 ClassLoader \u7684 class name</td></tr><tr><td style="text-align:right;">[x]</td><td style="text-align:left;">\u7ED3\u679C\u5BF9\u8C61\u7684\u5C55\u5F00\u5C42\u6B21\uFF0C\u9ED8\u8BA4\u503C 1</td></tr></tbody></table><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3>',5),k=s("OGNL \u7279\u6B8A\u7528\u6CD5\u8BF7\u53C2\u8003\uFF1A"),m={href:"https://github.com/alibaba/arthas/issues/71",target:"_blank",rel:"noopener noreferrer"},b=s("https://github.com/alibaba/arthas/issues/71"),h=s("OGNL \u8868\u8FBE\u5F0F\u5B98\u65B9\u6307\u5357\uFF1A"),f={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"),_=t(`<p>\u8C03\u7528\u9759\u6001\u51FD\u6570\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ ognl <span class="token string">&#39;@java.lang.System@out.println(&quot;hello&quot;)&#39;</span>
null
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>\u83B7\u53D6\u9759\u6001\u7C7B\u7684\u9759\u6001\u5B57\u6BB5\uFF1A</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ ognl <span class="token string">&#39;@demo.MathGame@random&#39;</span>
@Random<span class="token punctuation">[</span>
@@ -1,4 +1,4 @@
import{_ as t,o,c as l,a as e,b as a,e as n,d as i,r as d}from"./app.391b0e4e.js";const c={},r=e("h1",{id:"options",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#options","aria-hidden":"true"},"#"),n(" options")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-options",target:"_blank",rel:"noopener noreferrer"},p=e("code",null,"options",-1),b=n("\u5728\u7EBF\u6559\u7A0B"),m=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"\u63D0\u793A"),e("p",null,"\u5168\u5C40\u5F00\u5173")],-1),v=e("thead",null,[e("tr",null,[e("th",null,"\u540D\u79F0"),e("th",null,"\u9ED8\u8BA4\u503C"),e("th",null,"\u63CF\u8FF0")])],-1),h=e("tr",null,[e("td",null,"unsafe"),e("td",null,"false"),e("td",null,"\u662F\u5426\u652F\u6301\u5BF9\u7CFB\u7EDF\u7EA7\u522B\u7684\u7C7B\u8FDB\u884C\u589E\u5F3A\uFF0C\u6253\u5F00\u8BE5\u5F00\u5173\u53EF\u80FD\u5BFC\u81F4\u628A JVM \u641E\u6302\uFF0C\u8BF7\u614E\u91CD\u9009\u62E9\uFF01")],-1),f=e("tr",null,[e("td",null,"dump"),e("td",null,"false"),e("td",null,[n("\u662F\u5426\u652F\u6301\u88AB\u589E\u5F3A\u4E86\u7684\u7C7B dump \u5230\u5916\u90E8\u6587\u4EF6\u4E2D\uFF0C\u5982\u679C\u6253\u5F00\u5F00\u5173\uFF0Cclass \u6587\u4EF6\u4F1A\u88AB dump \u5230"),e("code",null,"/${application working dir}/arthas-class-dump/"),n("\u76EE\u5F55\u4E0B\uFF0C\u5177\u4F53\u4F4D\u7F6E\u8BE6\u89C1\u63A7\u5236\u53F0\u8F93\u51FA")])],-1),k=e("tr",null,[e("td",null,"batch-re-transform"),e("td",null,"true"),e("td",null,"\u662F\u5426\u652F\u6301\u6279\u91CF\u5BF9\u5339\u914D\u5230\u7684\u7C7B\u6267\u884C retransform \u64CD\u4F5C")],-1),g=e("tr",null,[e("td",null,"json-format"),e("td",null,"false"),e("td",null,"\u662F\u5426\u652F\u6301 json \u5316\u7684\u8F93\u51FA")],-1),_=e("tr",null,[e("td",null,"disable-sub-class"),e("td",null,"false"),e("td",null,"\u662F\u5426\u7981\u7528\u5B50\u7C7B\u5339\u914D\uFF0C\u9ED8\u8BA4\u5728\u5339\u914D\u76EE\u6807\u7C7B\u7684\u65F6\u5019\u4F1A\u9ED8\u8BA4\u5339\u914D\u5230\u5176\u5B50\u7C7B\uFF0C\u5982\u679C\u60F3\u7CBE\u786E\u5339\u914D\uFF0C\u53EF\u4EE5\u5173\u95ED\u6B64\u5F00\u5173")],-1),x=e("td",null,"support-default-method",-1),w=e("td",null,"true",-1),E=n("\u662F\u5426\u652F\u6301\u5339\u914D\u5230 default method\uFF0C\b \u9ED8\u8BA4\u4F1A\u67E5\u627E interface\uFF0C\u5339\u914D\u91CC\u9762\u7684 default method\u3002\u53C2\u8003 "),j={href:"https://github.com/alibaba/arthas/issues/1105",target:"_blank",rel:"noopener noreferrer"},y=n("#1105"),T=e("tr",null,[e("td",null,"save-result"),e("td",null,"false"),e("td",null,[n("\u662F\u5426\u6253\u5F00\u6267\u884C\u7ED3\u679C\u5B58\u65E5\u5FD7\u529F\u80FD\uFF0C\u6253\u5F00\u4E4B\u540E\u6240\u6709\u547D\u4EE4\u7684\u8FD0\u884C\u7ED3\u679C\u90FD\u5C06\u4FDD\u5B58\u5230"),e("code",null,"~/logs/arthas-cache/result.log"),n("\u4E2D")])],-1),O=e("tr",null,[e("td",null,"job-timeout"),e("td",null,"1d"),e("td",null,"\u5F02\u6B65\u540E\u53F0\u4EFB\u52A1\u7684\u9ED8\u8BA4\u8D85\u65F6\u65F6\u95F4\uFF0C\u8D85\u8FC7\u8FD9\u4E2A\u65F6\u95F4\uFF0C\u4EFB\u52A1\u81EA\u52A8\u505C\u6B62\uFF1B\b \u6BD4\u5982\u8BBE\u7F6E 1d, 2h, 3m, 25s\uFF0C\u5206\u522B\u4EE3\u8868\u5929\u3001\u5C0F\u65F6\u3001\u5206\u3001\u79D2")],-1),A=e("tr",null,[e("td",null,"print-parent-fields"),e("td",null,"true"),e("td",null,"\u662F\u5426\u6253\u5370\u5728 parent class \u91CC\u7684 filed")],-1),V=e("tr",null,[e("td",null,"verbose"),e("td",null,"false"),e("td",null,"\u662F\u5426\u6253 \b \u5370\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F")],-1),N=e("tr",null,[e("td",null,"strict"),e("td",null,"true"),e("td",null,"\u662F\u5426\u542F\u7528 strict \u6A21\u5F0F")],-1),M=i(`<h3 id="\u67E5\u770B\u6240\u6709\u7684-options" tabindex="-1"><a class="header-anchor" href="#\u67E5\u770B\u6240\u6709\u7684-options" aria-hidden="true">#</a> \u67E5\u770B\u6240\u6709\u7684 options</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ options
import{_ as t,o,c as l,a as e,b as a,e as n,d as i,r as d}from"./app.bd2aade7.js";const c={},r=e("h1",{id:"options",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#options","aria-hidden":"true"},"#"),n(" options")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-options",target:"_blank",rel:"noopener noreferrer"},p=e("code",null,"options",-1),b=n("\u5728\u7EBF\u6559\u7A0B"),m=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"\u63D0\u793A"),e("p",null,"\u5168\u5C40\u5F00\u5173")],-1),v=e("thead",null,[e("tr",null,[e("th",null,"\u540D\u79F0"),e("th",null,"\u9ED8\u8BA4\u503C"),e("th",null,"\u63CF\u8FF0")])],-1),h=e("tr",null,[e("td",null,"unsafe"),e("td",null,"false"),e("td",null,"\u662F\u5426\u652F\u6301\u5BF9\u7CFB\u7EDF\u7EA7\u522B\u7684\u7C7B\u8FDB\u884C\u589E\u5F3A\uFF0C\u6253\u5F00\u8BE5\u5F00\u5173\u53EF\u80FD\u5BFC\u81F4\u628A JVM \u641E\u6302\uFF0C\u8BF7\u614E\u91CD\u9009\u62E9\uFF01")],-1),f=e("tr",null,[e("td",null,"dump"),e("td",null,"false"),e("td",null,[n("\u662F\u5426\u652F\u6301\u88AB\u589E\u5F3A\u4E86\u7684\u7C7B dump \u5230\u5916\u90E8\u6587\u4EF6\u4E2D\uFF0C\u5982\u679C\u6253\u5F00\u5F00\u5173\uFF0Cclass \u6587\u4EF6\u4F1A\u88AB dump \u5230"),e("code",null,"/${application working dir}/arthas-class-dump/"),n("\u76EE\u5F55\u4E0B\uFF0C\u5177\u4F53\u4F4D\u7F6E\u8BE6\u89C1\u63A7\u5236\u53F0\u8F93\u51FA")])],-1),k=e("tr",null,[e("td",null,"batch-re-transform"),e("td",null,"true"),e("td",null,"\u662F\u5426\u652F\u6301\u6279\u91CF\u5BF9\u5339\u914D\u5230\u7684\u7C7B\u6267\u884C retransform \u64CD\u4F5C")],-1),g=e("tr",null,[e("td",null,"json-format"),e("td",null,"false"),e("td",null,"\u662F\u5426\u652F\u6301 json \u5316\u7684\u8F93\u51FA")],-1),_=e("tr",null,[e("td",null,"disable-sub-class"),e("td",null,"false"),e("td",null,"\u662F\u5426\u7981\u7528\u5B50\u7C7B\u5339\u914D\uFF0C\u9ED8\u8BA4\u5728\u5339\u914D\u76EE\u6807\u7C7B\u7684\u65F6\u5019\u4F1A\u9ED8\u8BA4\u5339\u914D\u5230\u5176\u5B50\u7C7B\uFF0C\u5982\u679C\u60F3\u7CBE\u786E\u5339\u914D\uFF0C\u53EF\u4EE5\u5173\u95ED\u6B64\u5F00\u5173")],-1),x=e("td",null,"support-default-method",-1),w=e("td",null,"true",-1),E=n("\u662F\u5426\u652F\u6301\u5339\u914D\u5230 default method\uFF0C\b \u9ED8\u8BA4\u4F1A\u67E5\u627E interface\uFF0C\u5339\u914D\u91CC\u9762\u7684 default method\u3002\u53C2\u8003 "),j={href:"https://github.com/alibaba/arthas/issues/1105",target:"_blank",rel:"noopener noreferrer"},y=n("#1105"),T=e("tr",null,[e("td",null,"save-result"),e("td",null,"false"),e("td",null,[n("\u662F\u5426\u6253\u5F00\u6267\u884C\u7ED3\u679C\u5B58\u65E5\u5FD7\u529F\u80FD\uFF0C\u6253\u5F00\u4E4B\u540E\u6240\u6709\u547D\u4EE4\u7684\u8FD0\u884C\u7ED3\u679C\u90FD\u5C06\u4FDD\u5B58\u5230"),e("code",null,"~/logs/arthas-cache/result.log"),n("\u4E2D")])],-1),O=e("tr",null,[e("td",null,"job-timeout"),e("td",null,"1d"),e("td",null,"\u5F02\u6B65\u540E\u53F0\u4EFB\u52A1\u7684\u9ED8\u8BA4\u8D85\u65F6\u65F6\u95F4\uFF0C\u8D85\u8FC7\u8FD9\u4E2A\u65F6\u95F4\uFF0C\u4EFB\u52A1\u81EA\u52A8\u505C\u6B62\uFF1B\b \u6BD4\u5982\u8BBE\u7F6E 1d, 2h, 3m, 25s\uFF0C\u5206\u522B\u4EE3\u8868\u5929\u3001\u5C0F\u65F6\u3001\u5206\u3001\u79D2")],-1),A=e("tr",null,[e("td",null,"print-parent-fields"),e("td",null,"true"),e("td",null,"\u662F\u5426\u6253\u5370\u5728 parent class \u91CC\u7684 filed")],-1),V=e("tr",null,[e("td",null,"verbose"),e("td",null,"false"),e("td",null,"\u662F\u5426\u6253 \b \u5370\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F")],-1),N=e("tr",null,[e("td",null,"strict"),e("td",null,"true"),e("td",null,"\u662F\u5426\u542F\u7528 strict \u6A21\u5F0F")],-1),M=i(`<h3 id="\u67E5\u770B\u6240\u6709\u7684-options" tabindex="-1"><a class="header-anchor" href="#\u67E5\u770B\u6240\u6709\u7684-options" aria-hidden="true">#</a> \u67E5\u770B\u6240\u6709\u7684 options</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ options
LEVEL TYPE NAME VALUE SUMMARY DESCRIPTION
-------------------------------------------------------------------------------------------------------
<span class="token number">0</span> boolea unsafe <span class="token boolean">false</span> Option to support sy This option enables to proxy functionality
@@ -1,4 +1,4 @@
import{_ as t,o,c as i,a as e,b as a,e as s,d as l,r as c}from"./app.391b0e4e.js";const r={},d=e("h1",{id:"options",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#options","aria-hidden":"true"},"#"),s(" options")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-options",target:"_blank",rel:"noopener noreferrer"},p=e("code",null,"options",-1),h=s(" online tutorial"),m=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"TIP"),e("p",null,"Global options")],-1),b=s("| Name | Default Value | Description | | ---------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ---- | -------------------------------------------------------------------- | | unsafe | false | whether to enhance to system-level class. Use it with caution since JVM may hang | | dump | false | whether to dump enhanced class to the external files. If it's on, enhanced class will be dumped into "),v=e("code",null,"/${application dir}/arthas-class-dump/",-1),f=s(", the specific output path will be output in the console | | batch-re-transform | true | whether to re-transform matched classes in batch | | json-format | false | whether to output in JSON format | | disable-sub-class | false | whether to enable matching child classes. The default value is "),g=e("code",null,"true",-1),k=s(". If exact match is desire, turn off this flag | | support-default-method | true | whether to enable matching default method in interface. The default value is "),w=e("code",null,"true",-1),_=s(". Refer to "),x={href:"https://github.com/alibaba/arthas/issues/1105",target:"_blank",rel:"noopener noreferrer"},j=s("#1105"),y=s(" | | save-result | false | whether to save execution result. All execution results will be saved to "),T=e("code",null,"~/logs/arthas-cache/result.log",-1),E=s(" when it's turned on | | job-timeout | 1d | default timeout for background jobs. Background job will be terminated once it's timed out (i.e. 1d, 2h, 3m, 25s) | print-parent-fields | true | This option enables print files in parent class, default value true. | | verbose | false | This option enables print verbose information | | strict | true | whether to enable strict mode |"),O=l(`<h3 id="view-all-options" tabindex="-1"><a class="header-anchor" href="#view-all-options" aria-hidden="true">#</a> View all options</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ options
import{_ as t,o,c as i,a as e,b as a,e as s,d as l,r as c}from"./app.bd2aade7.js";const r={},d=e("h1",{id:"options",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#options","aria-hidden":"true"},"#"),s(" options")],-1),u={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-options",target:"_blank",rel:"noopener noreferrer"},p=e("code",null,"options",-1),h=s(" online tutorial"),m=e("div",{class:"custom-container tip"},[e("p",{class:"custom-container-title"},"TIP"),e("p",null,"Global options")],-1),b=s("| Name | Default Value | Description | | ---------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ---- | -------------------------------------------------------------------- | | unsafe | false | whether to enhance to system-level class. Use it with caution since JVM may hang | | dump | false | whether to dump enhanced class to the external files. If it's on, enhanced class will be dumped into "),v=e("code",null,"/${application dir}/arthas-class-dump/",-1),f=s(", the specific output path will be output in the console | | batch-re-transform | true | whether to re-transform matched classes in batch | | json-format | false | whether to output in JSON format | | disable-sub-class | false | whether to enable matching child classes. The default value is "),g=e("code",null,"true",-1),k=s(". If exact match is desire, turn off this flag | | support-default-method | true | whether to enable matching default method in interface. The default value is "),w=e("code",null,"true",-1),_=s(". Refer to "),x={href:"https://github.com/alibaba/arthas/issues/1105",target:"_blank",rel:"noopener noreferrer"},j=s("#1105"),y=s(" | | save-result | false | whether to save execution result. All execution results will be saved to "),T=e("code",null,"~/logs/arthas-cache/result.log",-1),E=s(" when it's turned on | | job-timeout | 1d | default timeout for background jobs. Background job will be terminated once it's timed out (i.e. 1d, 2h, 3m, 25s) | print-parent-fields | true | This option enables print files in parent class, default value true. | | verbose | false | This option enables print verbose information | | strict | true | whether to enable strict mode |"),O=l(`<h3 id="view-all-options" tabindex="-1"><a class="header-anchor" href="#view-all-options" aria-hidden="true">#</a> View all options</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ options
LEVEL TYPE NAME VALUE SUMMARY DESCRIPTION
-------------------------------------------------------------------------------------------------------
<span class="token number">0</span> boolea unsafe <span class="token boolean">false</span> Option to support sy This option enables to proxy functionality
@@ -1,4 +1,4 @@
import{_ as s,o as i,c as d,a as e,b as r,e as a,d as t,r as l}from"./app.391b0e4e.js";const o={},c=e("h1",{id:"perfcounter",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#perfcounter","aria-hidden":"true"},"#"),a(" perfcounter")],-1),v={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-perfcounter",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"perfcounter",-1),m=a(" online tutorial"),p=t(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Check the current JVM Perf Counter information.</p></div><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ perfcounter
import{_ as s,o as i,c as d,a as e,b as r,e as a,d as t,r as l}from"./app.bd2aade7.js";const o={},c=e("h1",{id:"perfcounter",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#perfcounter","aria-hidden":"true"},"#"),a(" perfcounter")],-1),v={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-perfcounter",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"perfcounter",-1),m=a(" online tutorial"),p=t(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Check the current JVM Perf Counter information.</p></div><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ perfcounter
java.ci.totalTime 2325637411
java.cls.loadedClasses 3403
java.cls.sharedLoadedClasses 0
@@ -1,4 +1,4 @@
import{_ as s,o as d,c as i,a as e,b as r,e as a,d as l,r as t}from"./app.391b0e4e.js";const c={},o=e("h1",{id:"perfcounter",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#perfcounter","aria-hidden":"true"},"#"),a(" perfcounter")],-1),v={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-perfcounter",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"perfcounter",-1),m=a("\u5728\u7EBF\u6559\u7A0B"),p=l(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u67E5\u770B\u5F53\u524D JVM \u7684 Perf Counter \u4FE1\u606F</p></div><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ perfcounter
import{_ as s,o as d,c as i,a as e,b as r,e as a,d as l,r as t}from"./app.bd2aade7.js";const c={},o=e("h1",{id:"perfcounter",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#perfcounter","aria-hidden":"true"},"#"),a(" perfcounter")],-1),v={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-perfcounter",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"perfcounter",-1),m=a("\u5728\u7EBF\u6559\u7A0B"),p=l(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u67E5\u770B\u5F53\u524D JVM \u7684 Perf Counter \u4FE1\u606F</p></div><h3 id="\u4F7F\u7528\u53C2\u8003" tabindex="-1"><a class="header-anchor" href="#\u4F7F\u7528\u53C2\u8003" aria-hidden="true">#</a> \u4F7F\u7528\u53C2\u8003</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ perfcounter
java.ci.totalTime 2325637411
java.cls.loadedClasses 3403
java.cls.sharedLoadedClasses 0
@@ -1,4 +1,4 @@
import{_ as n,a as r}from"./arthas-output-svg.a3bef681.js";import{_ as l,o,c as d,a as e,b as t,e as s,d as i,r as c}from"./app.391b0e4e.js";const u={},p=e("h1",{id:"profiler",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#profiler","aria-hidden":"true"},"#"),s(" profiler")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-profiler",target:"_blank",rel:"noopener noreferrer"},m=e("code",null,"profiler",-1),f=s(" online tutorial"),v={class:"custom-container tip"},b=e("p",{class:"custom-container-title"},"TIP",-1),g=s("Generate a flame graph using "),x={href:"https://github.com/jvm-profiling-tools/async-profiler",target:"_blank",rel:"noopener noreferrer"},_=s("async-profiler"),y=i(`<p>The <code>profiler</code> command supports generate flame graph for application hotspots.</p><p>The basic usage of the <code>profiler</code> command is <code>profiler action [actionArg]</code></p><h3 id="supported-options" tabindex="-1"><a class="header-anchor" href="#supported-options" aria-hidden="true">#</a> Supported Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><em>action</em></td><td style="text-align:left;">Action to execute</td></tr><tr><td style="text-align:right;"><em>actionArg</em></td><td style="text-align:left;">Attribute name pattern</td></tr><tr><td style="text-align:right;">[i:]</td><td style="text-align:left;">sampling interval in ns (default: 10&#39;000&#39;000, i.e. 10 ms)</td></tr><tr><td style="text-align:right;">[f:]</td><td style="text-align:left;">dump output to specified directory</td></tr><tr><td style="text-align:right;">[d:]</td><td style="text-align:left;">run profiling for specified seconds</td></tr><tr><td style="text-align:right;">[e:]</td><td style="text-align:left;">which event to trace (cpu, alloc, lock, cache-misses etc.), default value is cpu</td></tr></tbody></table><h3 id="start-profiler" tabindex="-1"><a class="header-anchor" href="#start-profiler" aria-hidden="true">#</a> Start profiler</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ profiler start
import{_ as n,a as r}from"./arthas-output-svg.a3bef681.js";import{_ as l,o,c as d,a as e,b as t,e as s,d as i,r as c}from"./app.bd2aade7.js";const u={},p=e("h1",{id:"profiler",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#profiler","aria-hidden":"true"},"#"),s(" profiler")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-profiler",target:"_blank",rel:"noopener noreferrer"},m=e("code",null,"profiler",-1),f=s(" online tutorial"),v={class:"custom-container tip"},b=e("p",{class:"custom-container-title"},"TIP",-1),g=s("Generate a flame graph using "),x={href:"https://github.com/jvm-profiling-tools/async-profiler",target:"_blank",rel:"noopener noreferrer"},_=s("async-profiler"),y=i(`<p>The <code>profiler</code> command supports generate flame graph for application hotspots.</p><p>The basic usage of the <code>profiler</code> command is <code>profiler action [actionArg]</code></p><h3 id="supported-options" tabindex="-1"><a class="header-anchor" href="#supported-options" aria-hidden="true">#</a> Supported Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><em>action</em></td><td style="text-align:left;">Action to execute</td></tr><tr><td style="text-align:right;"><em>actionArg</em></td><td style="text-align:left;">Attribute name pattern</td></tr><tr><td style="text-align:right;">[i:]</td><td style="text-align:left;">sampling interval in ns (default: 10&#39;000&#39;000, i.e. 10 ms)</td></tr><tr><td style="text-align:right;">[f:]</td><td style="text-align:left;">dump output to specified directory</td></tr><tr><td style="text-align:right;">[d:]</td><td style="text-align:left;">run profiling for specified seconds</td></tr><tr><td style="text-align:right;">[e:]</td><td style="text-align:left;">which event to trace (cpu, alloc, lock, cache-misses etc.), default value is cpu</td></tr></tbody></table><h3 id="start-profiler" tabindex="-1"><a class="header-anchor" href="#start-profiler" aria-hidden="true">#</a> Start profiler</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ profiler start
Started [cpu] profiling
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>By default, the sample event is <code>cpu</code>. Can be specified with the <code>--event</code> parameter.</p></div><h3 id="get-the-number-of-samples-collected" tabindex="-1"><a class="header-anchor" href="#get-the-number-of-samples-collected" aria-hidden="true">#</a> Get the number of samples collected</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ profiler getSamples
23
@@ -1,4 +1,4 @@
import{_ as r,a as t}from"./arthas-output-svg.a3bef681.js";import{_ as l,o as d,c,a as e,b as i,e as s,d as n,r as o}from"./app.391b0e4e.js";const u={},p=e("h1",{id:"profiler",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#profiler","aria-hidden":"true"},"#"),s(" profiler")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-profiler",target:"_blank",rel:"noopener noreferrer"},m=e("code",null,"profiler",-1),v=s("\u5728\u7EBF\u6559\u7A0B"),b={class:"custom-container tip"},f=e("p",{class:"custom-container-title"},"\u63D0\u793A",-1),g=s("\u4F7F\u7528"),_={href:"https://github.com/jvm-profiling-tools/async-profiler",target:"_blank",rel:"noopener noreferrer"},x=s("async-profiler"),k=s("\u751F\u6210\u706B\u7130\u56FE"),y=n(`<p><code>profiler</code> \u547D\u4EE4\u652F\u6301\u751F\u6210\u5E94\u7528\u70ED\u70B9\u7684\u706B\u7130\u56FE\u3002\u672C\u8D28\u4E0A\u662F\u901A\u8FC7\u4E0D\u65AD\u7684\u91C7\u6837\uFF0C\u7136\u540E\u628A\u6536\u96C6\u5230\u7684\u91C7\u6837\u7ED3\u679C\u751F\u6210\u706B\u7130\u56FE\u3002</p><p><code>profiler</code> \u547D\u4EE4\u57FA\u672C\u8FD0\u884C\u7ED3\u6784\u662F <code>profiler action [actionArg]</code></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>action</em></td><td style="text-align:left;">\u8981\u6267\u884C\u7684\u64CD\u4F5C</td></tr><tr><td style="text-align:right;"><em>actionArg</em></td><td style="text-align:left;">\u5C5E\u6027\u540D\u6A21\u5F0F</td></tr><tr><td style="text-align:right;">[i:]</td><td style="text-align:left;">\u91C7\u6837\u95F4\u9694\uFF08\u5355\u4F4D\uFF1Ans\uFF09\uFF08\u9ED8\u8BA4\u503C\uFF1A10&#39;000&#39;000\uFF0C\u5373 10 ms\uFF09</td></tr><tr><td style="text-align:right;">[f:]</td><td style="text-align:left;">\u5C06\u8F93\u51FA\u8F6C\u50A8\u5230\u6307\u5B9A\u8DEF\u5F84</td></tr><tr><td style="text-align:right;">[d:]</td><td style="text-align:left;">\u8FD0\u884C\u8BC4\u6D4B\u6307\u5B9A\u79D2</td></tr><tr><td style="text-align:right;">[e:]</td><td style="text-align:left;">\u8981\u8DDF\u8E2A\u54EA\u4E2A\u4E8B\u4EF6\uFF08cpu, alloc, lock, cache-misses \u7B49\uFF09\uFF0C\u9ED8\u8BA4\u662F cpu</td></tr></tbody></table><h3 id="\u542F\u52A8-profiler" tabindex="-1"><a class="header-anchor" href="#\u542F\u52A8-profiler" aria-hidden="true">#</a> \u542F\u52A8 profiler</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ profiler start
import{_ as r,a as t}from"./arthas-output-svg.a3bef681.js";import{_ as l,o as d,c,a as e,b as i,e as s,d as n,r as o}from"./app.bd2aade7.js";const u={},p=e("h1",{id:"profiler",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#profiler","aria-hidden":"true"},"#"),s(" profiler")],-1),h={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-profiler",target:"_blank",rel:"noopener noreferrer"},m=e("code",null,"profiler",-1),v=s("\u5728\u7EBF\u6559\u7A0B"),b={class:"custom-container tip"},f=e("p",{class:"custom-container-title"},"\u63D0\u793A",-1),g=s("\u4F7F\u7528"),_={href:"https://github.com/jvm-profiling-tools/async-profiler",target:"_blank",rel:"noopener noreferrer"},x=s("async-profiler"),k=s("\u751F\u6210\u706B\u7130\u56FE"),y=n(`<p><code>profiler</code> \u547D\u4EE4\u652F\u6301\u751F\u6210\u5E94\u7528\u70ED\u70B9\u7684\u706B\u7130\u56FE\u3002\u672C\u8D28\u4E0A\u662F\u901A\u8FC7\u4E0D\u65AD\u7684\u91C7\u6837\uFF0C\u7136\u540E\u628A\u6536\u96C6\u5230\u7684\u91C7\u6837\u7ED3\u679C\u751F\u6210\u706B\u7130\u56FE\u3002</p><p><code>profiler</code> \u547D\u4EE4\u57FA\u672C\u8FD0\u884C\u7ED3\u6784\u662F <code>profiler action [actionArg]</code></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>action</em></td><td style="text-align:left;">\u8981\u6267\u884C\u7684\u64CD\u4F5C</td></tr><tr><td style="text-align:right;"><em>actionArg</em></td><td style="text-align:left;">\u5C5E\u6027\u540D\u6A21\u5F0F</td></tr><tr><td style="text-align:right;">[i:]</td><td style="text-align:left;">\u91C7\u6837\u95F4\u9694\uFF08\u5355\u4F4D\uFF1Ans\uFF09\uFF08\u9ED8\u8BA4\u503C\uFF1A10&#39;000&#39;000\uFF0C\u5373 10 ms\uFF09</td></tr><tr><td style="text-align:right;">[f:]</td><td style="text-align:left;">\u5C06\u8F93\u51FA\u8F6C\u50A8\u5230\u6307\u5B9A\u8DEF\u5F84</td></tr><tr><td style="text-align:right;">[d:]</td><td style="text-align:left;">\u8FD0\u884C\u8BC4\u6D4B\u6307\u5B9A\u79D2</td></tr><tr><td style="text-align:right;">[e:]</td><td style="text-align:left;">\u8981\u8DDF\u8E2A\u54EA\u4E2A\u4E8B\u4EF6\uFF08cpu, alloc, lock, cache-misses \u7B49\uFF09\uFF0C\u9ED8\u8BA4\u662F cpu</td></tr></tbody></table><h3 id="\u542F\u52A8-profiler" tabindex="-1"><a class="header-anchor" href="#\u542F\u52A8-profiler" aria-hidden="true">#</a> \u542F\u52A8 profiler</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ profiler start
Started [cpu] profiling
</code></pre><div class="line-numbers" aria-hidden="true"><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>\u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0C\u751F\u6210\u7684\u662F cpu \u7684\u706B\u7130\u56FE\uFF0C\u5373 event \u4E3A<code>cpu</code>\u3002\u53EF\u4EE5\u7528<code>--event</code>\u53C2\u6570\u6765\u6307\u5B9A\u3002</p></div><h3 id="\u83B7\u53D6\u5DF2\u91C7\u96C6\u7684-sample-\u7684\u6570\u91CF" tabindex="-1"><a class="header-anchor" href="#\u83B7\u53D6\u5DF2\u91C7\u96C6\u7684-sample-\u7684\u6570\u91CF" aria-hidden="true">#</a> \u83B7\u53D6\u5DF2\u91C7\u96C6\u7684 sample \u7684\u6570\u91CF</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>$ profiler getSamples
23
@@ -1,2 +1,2 @@
import{_ as t,o as s,c as o,a as e,b as r,e as a,d as c,r as d}from"./app.391b0e4e.js";const i={},l=e("h1",{id:"pwd",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#pwd","aria-hidden":"true"},"#"),a(" pwd")],-1),p={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-pwd",target:"_blank",rel:"noopener noreferrer"},_=e("code",null,"pwd",-1),h=a(" online tutorial"),u=c(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Return working directory name</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token builtin class-name">pwd</span>
import{_ as t,o as s,c as o,a as e,b as r,e as a,d as c,r as d}from"./app.bd2aade7.js";const i={},l=e("h1",{id:"pwd",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#pwd","aria-hidden":"true"},"#"),a(" pwd")],-1),p={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en&id=command-pwd",target:"_blank",rel:"noopener noreferrer"},_=e("code",null,"pwd",-1),h=a(" online tutorial"),u=c(`<div class="custom-container tip"><p class="custom-container-title">TIP</p><p>Return working directory name</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token builtin class-name">pwd</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,2);function m(v,f){const n=d("ExternalLinkIcon");return s(),o("div",null,[l,e("p",null,[e("a",p,[_,h,r(n)])]),u])}var w=t(i,[["render",m],["__file","pwd.html.vue"]]);export{w as default};
@@ -1,2 +1,2 @@
import{_ as s,o as t,c as o,a as e,b as c,e as a,d as r,r as d}from"./app.391b0e4e.js";const i={},l=e("h1",{id:"pwd",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#pwd","aria-hidden":"true"},"#"),a(" pwd")],-1),p={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-pwd",target:"_blank",rel:"noopener noreferrer"},_=e("code",null,"pwd",-1),h=a("\u5728\u7EBF\u6559\u7A0B"),u=r(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u8FD4\u56DE\u5F53\u524D\u7684\u5DE5\u4F5C\u76EE\u5F55\uFF0C\u548C linux \u547D\u4EE4\u7C7B\u4F3C</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token builtin class-name">pwd</span>
import{_ as s,o as t,c as o,a as e,b as c,e as a,d as r,r as d}from"./app.bd2aade7.js";const i={},l=e("h1",{id:"pwd",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#pwd","aria-hidden":"true"},"#"),a(" pwd")],-1),p={href:"https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=command-pwd",target:"_blank",rel:"noopener noreferrer"},_=e("code",null,"pwd",-1),h=a("\u5728\u7EBF\u6559\u7A0B"),u=r(`<div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u8FD4\u56DE\u5F53\u524D\u7684\u5DE5\u4F5C\u76EE\u5F55\uFF0C\u548C linux \u547D\u4EE4\u7C7B\u4F3C</p></div><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ <span class="token builtin class-name">pwd</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,2);function m(v,f){const n=d("ExternalLinkIcon");return t(),o("div",null,[l,e("p",null,[e("a",p,[_,h,c(n)])]),u])}var x=s(i,[["render",m],["__file","pwd.html.vue"]]);export{x as default};
@@ -1,4 +1,4 @@
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
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.bd2aade7.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
@@ -1,4 +1,4 @@
import{_ as l,o as i,c as u,a as s,b as a,w as p,d as e,e as n,r as o}from"./app.391b0e4e.js";const r={},k=e(`<h1 id="quick-start" tabindex="-1"><a class="header-anchor" href="#quick-start" aria-hidden="true">#</a> Quick Start</h1><h2 id="_1-start-math-game" tabindex="-1"><a class="header-anchor" href="#_1-start-math-game" aria-hidden="true">#</a> 1. Start 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
import{_ as l,o as i,c as u,a as s,b as a,w as p,d as e,e as n,r as o}from"./app.bd2aade7.js";const r={},k=e(`<h1 id="quick-start" tabindex="-1"><a class="header-anchor" href="#quick-start" aria-hidden="true">#</a> Quick Start</h1><h2 id="_1-start-math-game" tabindex="-1"><a class="header-anchor" href="#_1-start-math-game" aria-hidden="true">#</a> 1. Start 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> is a simple program that generates a random number every second, then it finds all prime factors of that number.</p>`,4),d=n("The source code of "),m=s("code",null,"math-game",-1),b=n(": "),v={href:"https://github.com/alibaba/arthas/blob/master/math-game/src/main/java/demo/MathGame.java",target:"_blank",rel:"noopener noreferrer"},h=n("View"),g=e(`<h2 id="_2-start-arthas" tabindex="-1"><a class="header-anchor" href="#_2-start-arthas" aria-hidden="true">#</a> 2. Start Arthas</h2><h3 id="linux-unix-mac" tabindex="-1"><a class="header-anchor" href="#linux-unix-mac" aria-hidden="true">#</a> Linux/Unix/Mac</h3><p>Execute the following command in the command line:</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
@@ -1 +1 @@
import{_ as t,o as e,c as s,d as o}from"./app.391b0e4e.js";const n={},r=o('<h1 id="quit" tabindex="-1"><a class="header-anchor" href="#quit" aria-hidden="true">#</a> quit</h1><p>exit the current Arthas client without affecting other clients. equals <strong>exit</strong>\u3001<strong>logout</strong>\u3001<strong>q</strong> command.</p><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>just exit Arthas client,it means Arthas server is not closed,so the changes you do will not be reseted.</p></div>',3),i=[r];function a(c,l){return e(),s("div",null,i)}var h=t(n,[["render",a],["__file","quit.html.vue"]]);export{h as default};
import{_ as t,o as e,c as s,d as o}from"./app.bd2aade7.js";const n={},r=o('<h1 id="quit" tabindex="-1"><a class="header-anchor" href="#quit" aria-hidden="true">#</a> quit</h1><p>exit the current Arthas client without affecting other clients. equals <strong>exit</strong>\u3001<strong>logout</strong>\u3001<strong>q</strong> command.</p><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>just exit Arthas client,it means Arthas server is not closed,so the changes you do will not be reseted.</p></div>',3),i=[r];function a(c,l){return e(),s("div",null,i)}var h=t(n,[["render",a],["__file","quit.html.vue"]]);export{h as default};
@@ -1 +1 @@
import{_ as t,o as e,c as s,d as r}from"./app.391b0e4e.js";const a={},o=r('<h1 id="quit" tabindex="-1"><a class="header-anchor" href="#quit" aria-hidden="true">#</a> quit</h1><p>\u9000\u51FA\u5F53\u524D Arthas \u5BA2\u6237\u7AEF\uFF0C\u5176\u4ED6 Arthas \u5BA2\u6237\u7AEF\u4E0D\u53D7\u5F71\u54CD\u3002\u7B49\u540C\u4E8E<strong>exit</strong>\u3001<strong>logout</strong>\u3001<strong>q</strong>\u4E09\u4E2A\u6307\u4EE4\u3002</p><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u53EA\u662F\u9000\u51FA\u5F53\u524D Arthas \u5BA2\u6237\u7AEF\uFF0CArthas \u7684\u670D\u52A1\u5668\u7AEF\u5E76\u6CA1\u6709\u5173\u95ED\uFF0C\u6240\u505A\u7684\u4FEE\u6539\u4E5F\u4E0D\u4F1A\u88AB\u91CD\u7F6E\u3002</p></div>',3),n=[o];function c(i,_){return e(),s("div",null,n)}var h=t(a,[["render",c],["__file","quit.html.vue"]]);export{h as default};
import{_ as t,o as e,c as s,d as r}from"./app.bd2aade7.js";const a={},o=r('<h1 id="quit" tabindex="-1"><a class="header-anchor" href="#quit" aria-hidden="true">#</a> quit</h1><p>\u9000\u51FA\u5F53\u524D Arthas \u5BA2\u6237\u7AEF\uFF0C\u5176\u4ED6 Arthas \u5BA2\u6237\u7AEF\u4E0D\u53D7\u5F71\u54CD\u3002\u7B49\u540C\u4E8E<strong>exit</strong>\u3001<strong>logout</strong>\u3001<strong>q</strong>\u4E09\u4E2A\u6307\u4EE4\u3002</p><div class="custom-container tip"><p class="custom-container-title">\u63D0\u793A</p><p>\u53EA\u662F\u9000\u51FA\u5F53\u524D Arthas \u5BA2\u6237\u7AEF\uFF0CArthas \u7684\u670D\u52A1\u5668\u7AEF\u5E76\u6CA1\u6709\u5173\u95ED\uFF0C\u6240\u505A\u7684\u4FEE\u6539\u4E5F\u4E0D\u4F1A\u88AB\u91CD\u7F6E\u3002</p></div>',3),n=[o];function c(i,_){return e(),s("div",null,n)}var h=t(a,[["render",c],["__file","quit.html.vue"]]);export{h as default};
@@ -1,4 +1,4 @@
import{_ as i,o as l,c as p,a as n,b as e,w as o,e as s,d,r as c}from"./app.391b0e4e.js";const r={},u=n("h1",{id:"redefine",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#redefine","aria-hidden":"true"},"#"),s(" redefine")],-1),m={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"TIP",-1),k=s("Recommend to use the "),v=s("retransform"),f=s(" command."),b={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-mc-redefine",target:"_blank",rel:"noopener noreferrer"},g=n("code",null,"mc-redefine",-1),_=s(" online tutorial"),y=n("div",{class:"custom-container tip"},[n("p",{class:"custom-container-title"},"TIP"),n("p",null,[s("Load the external "),n("code",null,"*.class"),s(" files to re-define the loaded classes in JVM.")])],-1),w=s("Reference: "),x={href:"https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/Instrumentation.html#redefineClasses-java.lang.instrument.ClassDefinition...-",target:"_blank",rel:"noopener noreferrer"},T=s("Instrumentation#redefineClasses"),I=n("h3",{id:"frequently-asked-questions",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#frequently-asked-questions","aria-hidden":"true"},"#"),s(" Frequently asked questions")],-1),C={class:"custom-container tip"},j=n("p",{class:"custom-container-title"},"TIP",-1),L=s("Recommend to use the "),q=s("retransform"),S=s(" command."),N=d(`<ul><li><p>The class of <code>redefine</code> cannot modify, add or delete the field and method of the class, including method parameters, method names and return values.</p></li><li><p>If <code>mc</code> fails, you can compile the class file in the local development environment, upload it to the target system, and use <code>redefine</code> to hot load the class.</p></li><li><p>At present, <code>redefine</code> conflicts with <code>watch / trace / jad / tt</code> commands. Reimplementing <code>redefine</code> function in the future will solve this problem.</p></li></ul><div class="custom-container warning"><p class="custom-container-title">WARNING</p><p>Notes: Re-defined classes cannot be restored. There are chances that redefining may fail due to some reasons, for example: there&#39;s new field introduced in the new version of the class, pls. refer to JDK&#39;s documentation for the limitations.</p></div><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>The <code>reset</code> command is not valid for classes that have been processed by <code>redefine</code>. If you want to reset, you need <code>redefine</code> the original bytecode.</p></div><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>The <code>redefine</code> command will conflict with the <code>jad</code>/<code>watch</code>/<code>trace</code>/<code>monitor</code>/<code>tt</code> commands. After executing <code>redefine</code>, if you execute the above mentioned command, the bytecode of the class will be reset. The reason is that in the JDK <code>redefine</code> and <code>retransform</code> are different mechanisms. When two mechanisms are both used to update the bytecode, only the last modified will take effect.</p></div><h3 id="options" tabindex="-1"><a class="header-anchor" href="#options" aria-hidden="true">#</a> Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><code>[c:]</code></td><td style="text-align:left;">hashcode of the class loader</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">The class name of the ClassLoader that executes the expression.</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>redefine /tmp/Test.class
import{_ as i,o as l,c as p,a as n,b as e,w as o,e as s,d,r as c}from"./app.bd2aade7.js";const r={},u=n("h1",{id:"redefine",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#redefine","aria-hidden":"true"},"#"),s(" redefine")],-1),m={class:"custom-container tip"},h=n("p",{class:"custom-container-title"},"TIP",-1),k=s("Recommend to use the "),v=s("retransform"),f=s(" command."),b={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-mc-redefine",target:"_blank",rel:"noopener noreferrer"},g=n("code",null,"mc-redefine",-1),_=s(" online tutorial"),y=n("div",{class:"custom-container tip"},[n("p",{class:"custom-container-title"},"TIP"),n("p",null,[s("Load the external "),n("code",null,"*.class"),s(" files to re-define the loaded classes in JVM.")])],-1),w=s("Reference: "),x={href:"https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/Instrumentation.html#redefineClasses-java.lang.instrument.ClassDefinition...-",target:"_blank",rel:"noopener noreferrer"},T=s("Instrumentation#redefineClasses"),I=n("h3",{id:"frequently-asked-questions",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#frequently-asked-questions","aria-hidden":"true"},"#"),s(" Frequently asked questions")],-1),C={class:"custom-container tip"},j=n("p",{class:"custom-container-title"},"TIP",-1),L=s("Recommend to use the "),q=s("retransform"),S=s(" command."),N=d(`<ul><li><p>The class of <code>redefine</code> cannot modify, add or delete the field and method of the class, including method parameters, method names and return values.</p></li><li><p>If <code>mc</code> fails, you can compile the class file in the local development environment, upload it to the target system, and use <code>redefine</code> to hot load the class.</p></li><li><p>At present, <code>redefine</code> conflicts with <code>watch / trace / jad / tt</code> commands. Reimplementing <code>redefine</code> function in the future will solve this problem.</p></li></ul><div class="custom-container warning"><p class="custom-container-title">WARNING</p><p>Notes: Re-defined classes cannot be restored. There are chances that redefining may fail due to some reasons, for example: there&#39;s new field introduced in the new version of the class, pls. refer to JDK&#39;s documentation for the limitations.</p></div><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>The <code>reset</code> command is not valid for classes that have been processed by <code>redefine</code>. If you want to reset, you need <code>redefine</code> the original bytecode.</p></div><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>The <code>redefine</code> command will conflict with the <code>jad</code>/<code>watch</code>/<code>trace</code>/<code>monitor</code>/<code>tt</code> commands. After executing <code>redefine</code>, if you execute the above mentioned command, the bytecode of the class will be reset. The reason is that in the JDK <code>redefine</code> and <code>retransform</code> are different mechanisms. When two mechanisms are both used to update the bytecode, only the last modified will take effect.</p></div><h3 id="options" tabindex="-1"><a class="header-anchor" href="#options" aria-hidden="true">#</a> Options</h3><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><code>[c:]</code></td><td style="text-align:left;">hashcode of the class loader</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">The class name of the ClassLoader that executes the expression.</td></tr></tbody></table><h3 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>redefine /tmp/Test.class
redefine -c 327a647b /tmp/Test.class /tmp/Test<span class="token punctuation">\\</span><span class="token variable">$Inner</span>.class
redefine --classLoaderClass sun.misc.Launcher<span class="token variable">$AppClassLoader</span> /tmp/Test.class /tmp/Test<span class="token punctuation">\\</span><span class="token variable">$Inner</span>.class
</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><h3 id="use-with-the-jad-mc-command" tabindex="-1"><a class="header-anchor" href="#use-with-the-jad-mc-command" aria-hidden="true">#</a> Use with the jad/mc command</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>jad --source-only com.example.demo.arthas.user.UserController <span class="token operator">&gt;</span> /tmp/UserController.java

Some files were not shown because too many files have changed in this diff Show More