|
|
<!DOCTYPE html>
|
|
|
<html lang="zh-CN">
|
|
|
<head>
|
|
|
<meta charset="utf-8">
|
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
|
<meta name="generator" content="VuePress 2.0.0-beta.51">
|
|
|
<style>
|
|
|
:root {
|
|
|
--c-bg: #fff;
|
|
|
}
|
|
|
html.dark {
|
|
|
--c-bg: #22272e;
|
|
|
}
|
|
|
html, body {
|
|
|
background-color: var(--c-bg);
|
|
|
}
|
|
|
</style>
|
|
|
<script>
|
|
|
const userMode = localStorage.getItem('vuepress-color-scheme');
|
|
|
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
|
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
|
|
|
document.documentElement.classList.toggle('dark', true);
|
|
|
}
|
|
|
</script>
|
|
|
<link rel="icon" href="/images/favicon.ico"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta property="og:title" content="Arthas"><meta property="og:image:alt" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta property="og:image" content="/images/arthas_mate_image.png"><meta property="og:description" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="600"><meta property="twitter:image:src" content="/images/arthas_mate_image.png"><meta property="twitter:image:alt" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><meta itemprop="name" content="Arthas"><meta itemprop="image" content="/images/arthas_mate_image.png"><meta itemprop="description" content="Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas"><script>
|
|
|
var _hmt = _hmt || [];
|
|
|
(function() {
|
|
|
var hm = document.createElement("script");
|
|
|
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
|
|
|
var s = document.getElementsByTagName("script")[0];
|
|
|
s.parentNode.insertBefore(hm, s);
|
|
|
})();
|
|
|
</script><meta name="aes-config" content="pid=xux-opensource&user_type=101&uid=&username=&dim10=arthas"><script src="//g.alicdn.com/alilog/mlog/aplus_v2.js" id="beacon-aplus" exparams="clog=o&aplus&sidx=aplusSidx&ckx=aplusCkx"></script><script src="//g.alicdn.com/aes/??tracker/1.0.34/index.js,tracker-plugin-pv/2.4.5/index.js,tracker-plugin-event/1.2.5/index.js,tracker-plugin-jserror/1.0.13/index.js,tracker-plugin-api/1.1.14/index.js,tracker-plugin-perf/1.1.8/index.js,tracker-plugin-eventTiming/1.0.4/index.js"></script><title>tt | arthas</title><meta name="description" content="arthas 使用文档">
|
|
|
<link rel="modulepreload" href="/3.x/assets/app.4d248835.js"><link rel="modulepreload" href="/3.x/assets/tt.html.980704e8.js"><link rel="modulepreload" href="/3.x/assets/tt.html.1800bc01.js"><link rel="prefetch" href="/3.x/assets/index.html.6c4675e2.js"><link rel="prefetch" href="/3.x/assets/index.html.636fad3d.js"><link rel="prefetch" href="/3.x/assets/advanced-use.html.94d49710.js"><link rel="prefetch" href="/3.x/assets/advice-class.html.0e371faa.js"><link rel="prefetch" href="/3.x/assets/agent.html.2c661add.js"><link rel="prefetch" href="/3.x/assets/arthas-properties.html.c6a378d8.js"><link rel="prefetch" href="/3.x/assets/arthas3.html.f5096367.js"><link rel="prefetch" href="/3.x/assets/async.html.08408f7f.js"><link rel="prefetch" href="/3.x/assets/auth.html.0cae929d.js"><link rel="prefetch" href="/3.x/assets/base64.html.e5a32bd6.js"><link rel="prefetch" href="/3.x/assets/batch-support.html.acbd1eb9.js"><link rel="prefetch" href="/3.x/assets/cat.html.79af7693.js"><link rel="prefetch" href="/3.x/assets/classloader.html.5b255ef1.js"><link rel="prefetch" href="/3.x/assets/cls.html.9332bbdf.js"><link rel="prefetch" href="/3.x/assets/commands.html.e2567b24.js"><link rel="prefetch" href="/3.x/assets/contact-us.html.6d0fe4e6.js"><link rel="prefetch" href="/3.x/assets/dashboard.html.c7a97553.js"><link rel="prefetch" href="/3.x/assets/docker.html.030cca04.js"><link rel="prefetch" href="/3.x/assets/download.html.b853bfd7.js"><link rel="prefetch" href="/3.x/assets/dump.html.3f441711.js"><link rel="prefetch" href="/3.x/assets/echo.html.239528da.js"><link rel="prefetch" href="/3.x/assets/faq.html.abd28b1f.js"><link rel="prefetch" href="/3.x/assets/getstatic.html.2229049b.js"><link rel="prefetch" href="/3.x/assets/grep.html.4aa91236.js"><link rel="prefetch" href="/3.x/assets/groovy.html.21de60b6.js"><link rel="prefetch" href="/3.x/assets/heapdump.html.3fe356b2.js"><link rel="prefetch" href="/3.x/assets/help.html.7ba26453.js"><link rel="prefetch" href="/3.x/assets/history.html.5c8da1d4.js"><link rel="prefetch" href="/3.x/assets/http-api.html.f5e81364.js"><link rel="prefetch" href="/3.x/assets/idea-plugin.html.d7acd139.js"><link rel="prefetch" href="/3.x/assets/install-detail.html.0c410a89.js"><link rel="prefetch" href="/3.x/assets/jad.html.d639a8bb.js"><link rel="prefetch" href="/3.x/assets/jfr.html.e858c4d3.js"><link rel="prefetch" href="/3.x/assets/jvm.html.a00151a5.js"><link rel="prefetch" href="/3.x/assets/keymap.html.e3647cfd.js"><link rel="prefetch" href="/3.x/assets/logger.html.7a983455.js"><link rel="prefetch" href="/3.x/assets/manual-install.html.09d3b86a.js"><link rel="prefetch" href="/3.x/assets/mbean.html.555cb2c7.js"><link rel="prefetch" href="/3.x/assets/mc.html.70645c5e.js"><link rel="prefetch" href="/3.x/assets/memory.html.078c4658.js"><link rel="prefetch" href="/3.x/assets/monitor.html.d6717549.js"><link rel="prefetch" href="/3.x/assets/ognl.html.a04123af.js"><link rel="prefetch" href="/3.x/assets/options.html.76f0ad11.js"><link rel="prefetch" href="/3.x/assets/perfcounter.html.a2008d46.js"><link rel="prefetch" href="/3.x/assets/profiler.html.2fe5463f.js"><link rel="prefetch" href="/3.x/assets/pwd.html.b8813280.js"><link rel="prefetch" href="/3.x/assets/quick-start.html.463266ab.js"><link rel="prefetch" href="/3.x/assets/quit.html.052c6b91.js"><link rel="prefetch" href="/3.x/assets/redefine.html.a2b54a14.js"><link rel="prefetch" href="/3.x/assets/release-notes.html.bd30f66e.js"><link rel="prefetch" href="/3.x/assets/reset.html.d6cfba7b.js"><link rel="prefetch" href="/3.x/assets/retransform.html.8eba17c2.js"><link rel="prefetch" href="/3.x/assets/save-log.html.1848baa1.js"><link rel="prefetch" href="/3.x/assets/sc.html.74c76d3a.js"><link rel="prefetch" href="/3.x/assets/session.html.5c4eabed.js"><link rel="prefetch" href="/3.x/assets/sm.html.e7e61e0b.js"><link rel="prefetch" href="/3.x/assets/spring-boot-starter.html.f437e222.js"><link rel="prefetch" href="/3.x/assets/stack.html.6561e199.js"><link rel="prefetch" href="/3.x/assets/start-arthas.html.11758ed5.js"><link rel="prefetch" href="/3.x/assets/stop.html.29be75c6.js"><link rel="prefetch" href="/3.x/assets/sysenv.html.2f968356.js"><link rel="prefetch" href="/3.x/assets/sysprop.html.36bf4069.js"><link rel="prefetch" href="/3.x/assets/tee.html.f88833bc.js"><link rel="prefetch" href="/3.x/assets/thread.html.036b2896.js"><link rel="prefetch" href="/3.x/assets/trace.html.0dc105ca.js"><link rel="prefetch" href="/3.x/assets/tunnel.html.5346db5d.js"><link rel="prefetch" href="/3.x/assets/version.html.85cfef6a.js"><link rel="prefetch" href="/3.x/assets/vmoption.html.58b16737.js"><link rel="prefetch" href="/3.x/assets/vmtool.html.3a06f08b.js"><link rel="prefetch" href="/3.x/assets/watch.html.3663bb24.js"><link rel="prefetch" href="/3.x/assets/web-console.html.8f3242b3.js"><link rel="prefetch" href="/3.x/assets/index.html.72b89313.js"><link rel="prefetch" href="/3.x/assets/index.html.da04bb04.js"><link rel="prefetch" href="/3.x/assets/advanced-use.html.2f295a56.js"><link rel="prefetch" href="/3.x/assets/advice-class.html.21f2ea38.js"><link rel="prefetch" href="/3.x/assets/agent.html.ad1674bc.js"><link rel="prefetch" href="/3.x/assets/arthas-properties.html.1fb20763.js"><link rel="prefetch" href="/3.x/assets/async.html.0990e2e8.js"><link rel="prefetch" href="/3.x/assets/auth.html.3fe3d5ca.js"><link rel="prefetch" href="/3.x/assets/base64.html.d9951e03.js"><link rel="prefetch" href="/3.x/assets/batch-support.html.a2012b98.js"><link rel="prefetch" href="/3.x/assets/cat.html.c8a558a6.js"><link rel="prefetch" href="/3.x/assets/classloader.html.50846686.js"><link rel="prefetch" href="/3.x/assets/cls.html.92ac93b9.js"><link rel="prefetch" href="/3.x/assets/commands.html.ea43666c.js"><link rel="prefetch" href="/3.x/assets/contact-us.html.77c0699c.js"><link rel="prefetch" href="/3.x/assets/dashboard.html.f56e6c96.js"><link rel="prefetch" href="/3.x/assets/docker.html.a7fd435f.js"><link rel="prefetch" href="/3.x/assets/download.html.127d6cde.js"><link rel="prefetch" href="/3.x/assets/dump.html.148d41dc.js"><link rel="prefetch" href="/3.x/assets/echo.html.8619670c.js"><link rel="prefetch" href="/3.x/assets/faq.html.18da055d.js"><link rel="prefetch" href="/3.x/assets/getstatic.html.e01bd744.js"><link rel="prefetch" href="/3.x/assets/grep.html.8e0aee31.js"><link rel="prefetch" href="/3.x/assets/groovy.html.92f5e844.js"><link rel="prefetch" href="/3.x/assets/heapdump.html.19f5486f.js"><link rel="prefetch" href="/3.x/assets/help.html.3d260e86.js"><link rel="prefetch" href="/3.x/assets/history.html.006cedb1.js"><link rel="prefetch" href="/3.x/assets/http-api.html.a19a0b64.js"><link rel="prefetch" href="/3.x/assets/idea-plugin.html.32b2309e.js"><link rel="prefetch" href="/3.x/assets/install-detail.html.0208e8d8.js"><link rel="prefetch" href="/3.x/assets/jad.html.e520a68e.js"><link rel="prefetch" href="/3.x/assets/jfr.html.57a326e6.js"><link rel="prefetch" href="/3.x/assets/jvm.html.4efee18b.js"><link rel="prefetch" href="/3.x/assets/keymap.html.e94a5d53.js"><link rel="prefetch" href="/3.x/assets/logger.html.3230d5ce.js"><link rel="prefetch" href="/3.x/assets/manual-install.html.42509750.js"><link rel="prefetch" href="/3.x/assets/mbean.html.405141c1.js"><link rel="prefetch" href="/3.x/assets/mc.html.89ccac82.js"><link rel="prefetch" href="/3.x/assets/memory.html.e3c4914e.js"><link rel="prefetch" href="/3.x/assets/monitor.html.30828325.js"><link rel="prefetch" href="/3.x/assets/ognl.html.a2f5b795.js"><link rel="prefetch" href="/3.x/assets/options.html.39ae73d3.js"><link rel="prefetch" href="/3.x/assets/perfcounter.html.04486209.js"><link rel="prefetch" href="/3.x/assets/profiler.html.ecb6c417.js"><link rel="prefetch" href="/3.x/assets/pwd.html.5c70637d.js"><link rel="prefetch" href="/3.x/assets/quick-start.html.2afac43e.js"><link rel="prefetch" href="/3.x/assets/quit.html.125451fe.js"><link rel="prefetch" href="/3.x/assets/redefine.html.ee728e3e.js"><link rel="prefetch" href="/3.x/assets/release-notes.html.5e40eac1.js"><link rel="prefetch" href="/3.x/assets/reset.html.6542e356.js"><link rel="prefetch" href="/3.x/assets/retransform.html.c9177e92.js"><link rel="prefetch" href="/3.x/assets/save-log.html.59e37d28.js"><link rel="prefetch" href="/3.x/assets/sc.html.7e6d0647.js"><link rel="prefetch" href="/3.x/assets/session.html.c643c273.js"><link rel="prefetch" href="/3.x/assets/sm.html.961479d6.js"><link rel="prefetch" href="/3.x/assets/spring-boot-starter.html.304b29da.js"><link rel="prefetch" href="/3.x/assets/stack.html.bbfa304b.js"><link rel="prefetch" href="/3.x/assets/start-arthas.html.ddd2298e.js"><link rel="prefetch" href="/3.x/assets/stop.html.8c6a9664.js"><link rel="prefetch" href="/3.x/assets/sysenv.html.d4a09599.js"><link rel="prefetch" href="/3.x/assets/sysprop.html.024045c5.js"><link rel="prefetch" href="/3.x/assets/tee.html.2c90d1cb.js"><link rel="prefetch" href="/3.x/assets/thread.html.e4dd07a8.js"><link rel="prefetch" href="/3.x/assets/trace.html.987171f7.js"><link rel="prefetch" href="/3.x/assets/tt.html.fd7438d0.js"><link rel="prefetch" href="/3.x/assets/tunnel.html.203ccf1d.js"><link rel="prefetch" href="/3.x/assets/version.html.2ce43555.js"><link rel="prefetch" href="/3.x/assets/vmoption.html.c8c7e7fc.js"><link rel="prefetch" href="/3.x/assets/vmtool.html.ab0c1d24.js"><link rel="prefetch" href="/3.x/assets/watch.html.8b8293d0.js"><link rel="prefetch" href="/3.x/assets/web-console.html.cea17e0f.js"><link rel="prefetch" href="/3.x/assets/404.html.d0402927.js"><link rel="prefetch" href="/3.x/assets/index.html.349dc4ce.js"><link rel="prefetch" href="/3.x/assets/index.html.3951988f.js"><link rel="prefetch" href="/3.x/assets/advanced-use.html.9554def2.js"><link rel="prefetch" href="/3.x/assets/advice-class.html.b56b5ad0.js"><link rel="prefetch" href="/3.x/assets/agent.html.a8d22dff.js"><link rel="prefetch" href="/3.x/assets/arthas-properties.html.3164354d.js"><link rel="prefetch" href="/3.x/assets/arthas3.html.62e301e7.js"><link rel="prefetch" href="/3.x/assets/async.html.d8cce9ca.js"><link rel="prefetch" href="/3.x/assets/auth.html.35f80b21.js"><link rel="prefetch" href="/3.x/assets/base64.html.4feec68d.js"><link rel="prefetch" href="/3.x/assets/batch-support.html.1959143d.js"><link rel="prefetch" href="/3.x/assets/cat.html.77044202.js"><link rel="prefetch" href="/3.x/assets/classloader.html.2b5b952f.js"><link rel="prefetch" href="/3.x/assets/cls.html.a6a13162.js"><link rel="prefetch" href="/3.x/assets/commands.html.e522310c.js"><link rel="prefetch" href="/3.x/assets/contact-us.html.c4d19d8e.js"><link rel="prefetch" href="/3.x/assets/dashboard.html.88ef26c5.js"><link rel="prefetch" href="/3.x/assets/docker.html.8430667f.js"><link rel="prefetch" href="/3.x/assets/download.html.5cdfc6bd.js"><link rel="prefetch" href="/3.x/assets/dump.html.aa1d0523.js"><link rel="prefetch" href="/3.x/assets/echo.html.f45a06cc.js"><link rel="prefetch" href="/3.x/assets/faq.html.b9626740.js"><link rel="prefetch" href="/3.x/assets/getstatic.html.194e97dd.js"><link rel="prefetch" href="/3.x/assets/grep.html.c753d37b.js"><link rel="prefetch" href="/3.x/assets/groovy.html.292661c1.js"><link rel="prefetch" href="/3.x/assets/heapdump.html.2d73c547.js"><link rel="prefetch" href="/3.x/assets/help.html.5a1d36ec.js"><link rel="prefetch" href="/3.x/assets/history.html.3f90631d.js"><link rel="prefetch" href="/3.x/assets/http-api.html.5c8cd6bc.js"><link rel="prefetch" href="/3.x/assets/idea-plugin.html.0961bb69.js"><link rel="prefetch" href="/3.x/assets/install-detail.html.50cfaa59.js"><link rel="prefetch" href="/3.x/assets/jad.html.67f11a53.js"><link rel="prefetch" href="/3.x/assets/jfr.html.bb7f02ab.js"><link rel="prefetch" href="/3.x/assets/jvm.html.b5bfa365.js"><link rel="prefetch" href="/3.x/assets/keymap.html.6e72672f.js"><link rel="prefetch" href="/3.x/assets/logger.html.cdea0f90.js"><link rel="prefetch" href="/3.x/assets/manual-install.html.d729afcd.js"><link rel="prefetch" href="/3.x/assets/mbean.html.26631030.js"><link rel="prefetch" href="/3.x/assets/mc.html.19c82f53.js"><link rel="prefetch" href="/3.x/assets/memory.html.9926de30.js"><link rel="prefetch" href="/3.x/assets/monitor.html.5f496a09.js"><link rel="prefetch" href="/3.x/assets/ognl.html.59679ee9.js"><link rel="prefetch" href="/3.x/assets/options.html.b8b42168.js"><link rel="prefetch" href="/3.x/assets/perfcounter.html.3794d77f.js"><link rel="prefetch" href="/3.x/assets/profiler.html.e7f88019.js"><link rel="prefetch" href="/3.x/assets/pwd.html.d34432c3.js"><link rel="prefetch" href="/3.x/assets/quick-start.html.cbab3d30.js"><link rel="prefetch" href="/3.x/assets/quit.html.64b41fb3.js"><link rel="prefetch" href="/3.x/assets/redefine.html.2e16ab41.js"><link rel="prefetch" href="/3.x/assets/release-notes.html.8810e03d.js"><link rel="prefetch" href="/3.x/assets/reset.html.613ce22c.js"><link rel="prefetch" href="/3.x/assets/retransform.html.509ca8a2.js"><link rel="prefetch" href="/3.x/assets/save-log.html.6fa77f22.js"><link rel="prefetch" href="/3.x/assets/sc.html.09e2c24b.js"><link rel="prefetch" href="/3.x/assets/session.html.61530ca8.js"><link rel="prefetch" href="/3.x/assets/sm.html.0d66961e.js"><link rel="prefetch" href="/3.x/assets/spring-boot-starter.html.0ccae142.js"><link rel="prefetch" href="/3.x/assets/stack.html.db4b5700.js"><link rel="prefetch" href="/3.x/assets/start-arthas.html.4886b6be.js"><link rel="prefetch" href="/3.x/assets/stop.html.17210afa.js"><link rel="prefetch" href="/3.x/assets/sysenv.html.ac969eec.js"><link rel="prefetch" href="/3.x/assets/sysprop.html.aeb4ee87.js"><link rel="prefetch" href="/3.x/assets/tee.html.8aa74468.js"><link rel="prefetch" href="/3.x/assets/thread.html.c837e66a.js"><link rel="prefetch" href="/3.x/assets/trace.html.861de4ab.js"><link rel="prefetch" href="/3.x/assets/tunnel.html.9c3dcb91.js"><link rel="prefetch" href="/3.x/assets/version.html.48ec1551.js"><link rel="prefetch" href="/3.x/assets/vmoption.html.c32a5087.js"><link rel="prefetch" href="/3.x/assets/vmtool.html.dc9e0833.js"><link rel="prefetch" href="/3.x/assets/watch.html.e73d5269.js"><link rel="prefetch" href="/3.x/assets/web-console.html.ad1a9f26.js"><link rel="prefetch" href="/3.x/assets/index.html.27b99973.js"><link rel="prefetch" href="/3.x/assets/index.html.88e6b040.js"><link rel="prefetch" href="/3.x/assets/advanced-use.html.b6fb70e9.js"><link rel="prefetch" href="/3.x/assets/advice-class.html.913cd28f.js"><link rel="prefetch" href="/3.x/assets/agent.html.5d625533.js"><link rel="prefetch" href="/3.x/assets/arthas-properties.html.f3f99ef8.js"><link rel="prefetch" href="/3.x/assets/async.html.0718d03c.js"><link rel="prefetch" href="/3.x/assets/auth.html.d091b8de.js"><link rel="prefetch" href="/3.x/assets/base64.html.4fc99fea.js"><link rel="prefetch" href="/3.x/assets/batch-support.html.09feead8.js"><link rel="prefetch" href="/3.x/assets/cat.html.7e324ac6.js"><link rel="prefetch" href="/3.x/assets/classloader.html.d971b2e3.js"><link rel="prefetch" href="/3.x/assets/cls.html.aef45d21.js"><link rel="prefetch" href="/3.x/assets/commands.html.b9c3ff85.js"><link rel="prefetch" href="/3.x/assets/contact-us.html.6b2c4bcc.js"><link rel="prefetch" href="/3.x/assets/dashboard.html.79bd7e0f.js"><link rel="prefetch" href="/3.x/assets/docker.html.77dd787e.js"><link rel="prefetch" href="/3.x/assets/download.html.0aec292a.js"><link rel="prefetch" href="/3.x/assets/dump.html.a9afcd2b.js"><link rel="prefetch" href="/3.x/assets/echo.html.c9564b4c.js"><link rel="prefetch" href="/3.x/assets/faq.html.39698152.js"><link rel="prefetch" href="/3.x/assets/getstatic.html.d81e76f2.js"><link rel="prefetch" href="/3.x/assets/grep.html.1c2ee274.js"><link rel="prefetch" href="/3.x/assets/groovy.html.2ef01485.js"><link rel="prefetch" href="/3.x/assets/heapdump.html.51c1271f.js"><link rel="prefetch" href="/3.x/assets/help.html.67ffadca.js"><link rel="prefetch" href="/3.x/assets/history.html.72971f6a.js"><link rel="prefetch" href="/3.x/assets/http-api.html.1bd8ba57.js"><link rel="prefetch" href="/3.x/assets/idea-plugin.html.5cd3ae1a.js"><link rel="prefetch" href="/3.x/assets/install-detail.html.cbd1e77a.js"><link rel="prefetch" href="/3.x/assets/jad.html.01fefda3.js"><link rel="prefetch" href="/3.x/assets/jfr.html.63d78e12.js"><link rel="prefetch" href="/3.x/assets/jvm.html.5fd9778c.js"><link rel="prefetch" href="/3.x/assets/keymap.html.35ecd977.js"><link rel="prefetch" href="/3.x/assets/logger.html.7de7427f.js"><link rel="prefetch" href="/3.x/assets/manual-install.html.aba050db.js"><link rel="prefetch" href="/3.x/assets/mbean.html.7437cca3.js"><link rel="prefetch" href="/3.x/assets/mc.html.ac459852.js"><link rel="prefetch" href="/3.x/assets/memory.html.7bfef615.js"><link rel="prefetch" href="/3.x/assets/monitor.html.0b324722.js"><link rel="prefetch" href="/3.x/assets/ognl.html.c5956d1f.js"><link rel="prefetch" href="/3.x/assets/options.html.6ca60b92.js"><link rel="prefetch" href="/3.x/assets/perfcounter.html.c8d6f07e.js"><link rel="prefetch" href="/3.x/assets/profiler.html.95a82517.js"><link rel="prefetch" href="/3.x/assets/pwd.html.4f686509.js"><link rel="prefetch" href="/3.x/assets/quick-start.html.70301235.js"><link rel="prefetch" href="/3.x/assets/quit.html.adcbca9c.js"><link rel="prefetch" href="/3.x/assets/redefine.html.4f4236c3.js"><link rel="prefetch" href="/3.x/assets/release-notes.html.79040020.js"><link rel="prefetch" href="/3.x/assets/reset.html.b7ada98f.js"><link rel="prefetch" href="/3.x/assets/retransform.html.590b7b85.js"><link rel="prefetch" href="/3.x/assets/save-log.html.aede14f6.js"><link rel="prefetch" href="/3.x/assets/sc.html.4231ef3b.js"><link rel="prefetch" href="/3.x/assets/session.html.ebca9c60.js"><link rel="prefetch" href="/3.x/assets/sm.html.981fdfec.js"><link rel="prefetch" href="/3.x/assets/spring-boot-starter.html.60544b4f.js"><link rel="prefetch" href="/3.x/assets/stack.html.dfb85a5e.js"><link rel="prefetch" href="/3.x/assets/start-arthas.html.aeeb9c4f.js"><link rel="prefetch" href="/3.x/assets/stop.html.493e47db.js"><link rel="prefetch" href="/3.x/assets/sysenv.html.ce9a0bce.js"><link rel="prefetch" href="/3.x/assets/sysprop.html.76aee09d.js"><link rel="prefetch" href="/3.x/assets/tee.html.9daca569.js"><link rel="prefetch" href="/3.x/assets/thread.html.3171fcb1.js"><link rel="prefetch" href="/3.x/assets/trace.html.53ffd359.js"><link rel="prefetch" href="/3.x/assets/tt.html.51ba2266.js"><link rel="prefetch" href="/3.x/assets/tunnel.html.d20e61ab.js"><link rel="prefetch" href="/3.x/assets/version.html.18257b2f.js"><link rel="prefetch" href="/3.x/assets/vmoption.html.a450713f.js"><link rel="prefetch" href="/3.x/assets/vmtool.html.65118aec.js"><link rel="prefetch" href="/3.x/assets/watch.html.30c91d3e.js"><link rel="prefetch" href="/3.x/assets/web-console.html.a124c728.js"><link rel="prefetch" href="/3.x/assets/404.html.2154acec.js">
|
|
|
<link rel="stylesheet" href="/3.x/assets/style.f2bd2fc0.css">
|
|
|
</head>
|
|
|
<body>
|
|
|
<div id="app"><!--[--><div class="theme-container"><!--[--><header class="navbar"><div class="toggle-sidebar-button" title="切换侧边栏" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/3.x/" class="" data-v-a8869d06><!----><span class="site-name can-hide" data-v-a8869d06>arthas</span><span class="navbar-version" data-v-a8869d06>v3.7.3</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/3.x/" class="" aria-label="首页"><!--[--><!--]--> 首页 <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="/doc/arthas-tutorials.html?language=cn&id=arthas-basics" rel="noopener noreferrer" target="_blank" aria-label="在线教程"><!--[--><!--]--><span>在线教程</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a></div><div class="navbar-item"><a href="/3.x/doc/" class="router-link-active" aria-label="文档"><!--[--><!--]--> 文档 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/3.x/doc/commands.md" class="" aria-label="命令列表"><!--[--><!--]--> 命令列表 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/3.x/doc/download.md" class="" aria-label="下载"><!--[--><!--]--> 下载 <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="版本"><span class="title">版本</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="版本"><span class="title">版本</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a class="external-link" href="https://arthas.aliyun.com/" rel="noopener noreferrer" target="_blank" aria-label="v4.x"><!--[--><!--]--><span>v4.x</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" height="1em" style="height:1.25rem;width:1.25rem;vertical-align:bottom;" viewbox="0 0 24 24"><path fill="currentColor" d="M13.35 22q-.6 0-.862-.387q-.263-.388-.063-.963l3.65-9.675q.15-.4.563-.688Q17.05 10 17.5 10q.425 0 .85.287q.425.288.575.688l3.65 9.675q.2.575-.062.963q-.263.387-.888.387q-.275 0-.5-.175q-.225-.175-.325-.425l-.85-2.45H15.1l-.875 2.45q-.1.25-.35.425q-.25.175-.525.175Zm2.35-4.8h3.6l-1.75-4.95h-.1ZM7.15 8.55q.4.725.85 1.337q.45.613 1.05 1.263q1.1-1.2 1.825-2.462Q11.6 7.425 12.1 6H2q-.425 0-.712-.287Q1 5.425 1 5t.288-.713Q1.575 4 2 4h6V3q0-.425.288-.713Q8.575 2 9 2t.713.287Q10 2.575 10 3v1h6q.425 0 .712.287Q17 4.575 17 5t-.288.713Q16.425 6 16 6h-1.9q-.525 1.775-1.425 3.45q-.9 1.675-2.225 3.15l2.4 2.45l-.75 2.05L9 14l-4.3 4.3q-.275.275-.7.275q-.425 0-.7-.275q-.275-.275-.275-.7q0-.425.275-.7l4.35-4.35q-.675-.775-1.25-1.563q-.575-.787-1.025-1.662Q5.1 8.8 5.35 8.4t.875-.4q.25 0 .525.162q.275.163.4.388Z"></path></svg><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" height="1em" style="height:1.25rem;width:1.25rem;vertical-align:bottom;" viewbox="0 0 24 24"><path fill="currentColor" d="M13.35 22q-.6 0-.862-.387q-.263-.388-.063-.963l3.65-9.675q.15-.4.563-.688Q17.05 10 17.5 10q.425 0 .85.287q.425.288.575.688l3.65 9.675q.2.575-.062.963q-.263.387-.888.387q-.275 0-.5-.175q-.225-.175-.325-.425l-.85-2.45H15.1l-.875 2.45q-.1.25-.35.425q-.25.175-.525.175Zm2.35-4.8h3.6l-1.75-4.95h-.1ZM7.15 8.55q.4.725.85 1.337q.45.613 1.05 1.263q1.1-1.2 1.825-2.462Q11.6 7.425 12.1 6H2q-.425 0-.712-.287Q1 5.425 1 5t.288-.713Q1.575 4 2 4h6V3q0-.425.288-.713Q8.575 2 9 2t.713.287Q10 2.575 10 3v1h6q.425 0 .712.287Q17 4.575 17 5t-.288.713Q16.425 6 16 6h-1.9q-.525 1.775-1.425 3.45q-.9 1.675-2.225 3.15l2.4 2.45l-.75 2.05L9 14l-4.3 4.3q-.275.275-.7.275q-.425 0-.7-.275q-.275-.275-.275-.7q0-.425.275-.7l4.35-4.35q-.675-.775-1.25-1.563q-.575-.787-1.025-1.662Q5.1 8.8 5.35 8.4t.875-.4q.25 0 .525.162q.275.163.4.388Z"></path></svg><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/3.x/doc/tt.html" class="router-link-active router-link-exact-active router-link-active" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/3.x/en/doc/tt.html" class="" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><a class="external-link" href="https://github.com/alibaba/arthas" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 24 24" style="height:1.25rem;width:1.25rem;vertical-align:bottom;"><path fill="currentColor" d="M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33c.85 0 1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2Z"></path></svg><!----><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button class="toggle-color-mode-button" title="切换颜色模式"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><div id="docsearch-container"></div></div></header><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><nav class="navbar-items"><!--[--><div class="navbar-item"><a href="/3.x/" class="" aria-label="首页"><!--[--><!--]--> 首页 <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="/doc/arthas-tutorials.html?language=cn&id=arthas-basics" rel="noopener noreferrer" target="_blank" aria-label="在线教程"><!--[--><!--]--><span>在线教程</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a></div><div class="navbar-item"><a href="/3.x/doc/" class="router-link-active" aria-label="文档"><!--[--><!--]--> 文档 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/3.x/doc/commands.md" class="" aria-label="命令列表"><!--[--><!--]--> 命令列表 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/3.x/doc/download.md" class="" aria-label="下载"><!--[--><!--]--> 下载 <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="版本"><span class="title">版本</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="版本"><span class="title">版本</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a class="external-link" href="https://arthas.aliyun.com/" rel="noopener noreferrer" target="_blank" aria-label="v4.x"><!--[--><!--]--><span>v4.x</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" height="1em" style="height:1.25rem;width:1.25rem;vertical-align:bottom;" viewbox="0 0 24 24"><path fill="currentColor" d="M13.35 22q-.6 0-.862-.387q-.263-.388-.063-.963l3.65-9.675q.15-.4.563-.688Q17.05 10 17.5 10q.425 0 .85.287q.425.288.575.688l3.65 9.675q.2.575-.062.963q-.263.387-.888.387q-.275 0-.5-.175q-.225-.175-.325-.425l-.85-2.45H15.1l-.875 2.45q-.1.25-.35.425q-.25.175-.525.175Zm2.35-4.8h3.6l-1.75-4.95h-.1ZM7.15 8.55q.4.725.85 1.337q.45.613 1.05 1.263q1.1-1.2 1.825-2.462Q11.6 7.425 12.1 6H2q-.425 0-.712-.287Q1 5.425 1 5t.288-.713Q1.575 4 2 4h6V3q0-.425.288-.713Q8.575 2 9 2t.713.287Q10 2.575 10 3v1h6q.425 0 .712.287Q17 4.575 17 5t-.288.713Q16.425 6 16 6h-1.9q-.525 1.775-1.425 3.45q-.9 1.675-2.225 3.15l2.4 2.45l-.75 2.05L9 14l-4.3 4.3q-.275.275-.7.275q-.425 0-.7-.275q-.275-.275-.275-.7q0-.425.275-.7l4.35-4.35q-.675-.775-1.25-1.563q-.575-.787-1.025-1.662Q5.1 8.8 5.35 8.4t.875-.4q.25 0 .525.162q.275.163.4.388Z"></path></svg><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" height="1em" style="height:1.25rem;width:1.25rem;vertical-align:bottom;" viewbox="0 0 24 24"><path fill="currentColor" d="M13.35 22q-.6 0-.862-.387q-.263-.388-.063-.963l3.65-9.675q.15-.4.563-.688Q17.05 10 17.5 10q.425 0 .85.287q.425.288.575.688l3.65 9.675q.2.575-.062.963q-.263.387-.888.387q-.275 0-.5-.175q-.225-.175-.325-.425l-.85-2.45H15.1l-.875 2.45q-.1.25-.35.425q-.25.175-.525.175Zm2.35-4.8h3.6l-1.75-4.95h-.1ZM7.15 8.55q.4.725.85 1.337q.45.613 1.05 1.263q1.1-1.2 1.825-2.462Q11.6 7.425 12.1 6H2q-.425 0-.712-.287Q1 5.425 1 5t.288-.713Q1.575 4 2 4h6V3q0-.425.288-.713Q8.575 2 9 2t.713.287Q10 2.575 10 3v1h6q.425 0 .712.287Q17 4.575 17 5t-.288.713Q16.425 6 16 6h-1.9q-.525 1.775-1.425 3.45q-.9 1.675-2.225 3.15l2.4 2.45l-.75 2.05L9 14l-4.3 4.3q-.275.275-.7.275q-.425 0-.7-.275q-.275-.275-.275-.7q0-.425.275-.7l4.35-4.35q-.675-.775-1.25-1.563q-.575-.787-1.025-1.662Q5.1 8.8 5.35 8.4t.875-.4q.25 0 .525.162q.275.163.4.388Z"></path></svg><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/3.x/doc/tt.html" class="router-link-active router-link-exact-active router-link-active" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/3.x/en/doc/tt.html" class="" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><a class="external-link" href="https://github.com/alibaba/arthas" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 24 24" style="height:1.25rem;width:1.25rem;vertical-align:bottom;"><path fill="currentColor" d="M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33c.85 0 1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2Z"></path></svg><!----><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading active">文档 <!----></p><ul style="" class="sidebar-item-children"><!--[--><li><a href="/3.x/doc/" class="router-link-active sidebar-item" aria-label="简介"><!--[--><!--]--> 简介 <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/quick-start.html" class="sidebar-item" aria-label="快速入门"><!--[--><!--]--> 快速入门 <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/install-detail.html" class="sidebar-item" aria-label="Arthas Install"><!--[--><!--]--> Arthas Install <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/download.html" class="sidebar-item" aria-label="下载"><!--[--><!--]--> 下载 <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/advice-class.html" class="sidebar-item" aria-label="表达式核心变量"><!--[--><!--]--> 表达式核心变量 <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/commands.md" class="sidebar-item active collapsible" aria-label="命令列表"><!--[--><!--]--> 命令列表 <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a href="/3.x/doc/auth.html" class="sidebar-item" aria-label="auth"><!--[--><!--]--> auth <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/base64.html" class="sidebar-item" aria-label="base64"><!--[--><!--]--> base64 <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/cat.html" class="sidebar-item" aria-label="cat"><!--[--><!--]--> cat <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/classloader.html" class="sidebar-item" aria-label="classloader"><!--[--><!--]--> classloader <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/cls.html" class="sidebar-item" aria-label="cls"><!--[--><!--]--> cls <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/dashboard.html" class="sidebar-item" aria-label="dashboard"><!--[--><!--]--> dashboard <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/dump.html" class="sidebar-item" aria-label="dump"><!--[--><!--]--> dump <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/echo.html" class="sidebar-item" aria-label="echo"><!--[--><!--]--> echo <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/getstatic.html" class="sidebar-item" aria-label="getstatic"><!--[--><!--]--> getstatic <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/grep.html" class="sidebar-item" aria-label="grep"><!--[--><!--]--> grep <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/heapdump.html" class="sidebar-item" aria-label="heapdump"><!--[--><!--]--> heapdump <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/help.html" class="sidebar-item" aria-label="help"><!--[--><!--]--> help <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/history.html" class="sidebar-item" aria-label="history"><!--[--><!--]--> history <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/jad.html" class="sidebar-item" aria-label="jad"><!--[--><!--]--> jad <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/jfr.html" class="sidebar-item" aria-label="jfr"><!--[--><!--]--> jfr <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/jvm.html" class="sidebar-item" aria-label="jvm"><!--[--><!--]--> jvm <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/keymap.html" class="sidebar-item" aria-label="keymap"><!--[--><!--]--> keymap <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/logger.html" class="sidebar-item" aria-label="logger"><!--[--><!--]--> logger <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/mbean.html" class="sidebar-item" aria-label="mbean"><!--[--><!--]--> mbean <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/mc.html" class="sidebar-item" aria-label="mc"><!--[--><!--]--> mc <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/memory.html" class="sidebar-item" aria-label="memory"><!--[--><!--]--> memory <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/monitor.html" class="sidebar-item" aria-label="monitor"><!--[--><!--]--> monitor <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/ognl.html" class="sidebar-item" aria-label="ognl"><!--[--><!--]--> ognl <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/options.html" class="sidebar-item" aria-label="options"><!--[--><!--]--> options <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/perfcounter.html" class="sidebar-item" aria-label="perfcounter"><!--[--><!--]--> perfcounter <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/profiler.html" class="sidebar-item" aria-label="profiler"><!--[--><!--]--> profiler <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/pwd.html" class="sidebar-item" aria-label="pwd"><!--[--><!--]--> pwd <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/quit.html" class="sidebar-item" aria-label="quit"><!--[--><!--]--> quit <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/redefine.html" class="sidebar-item" aria-label="redefine"><!--[--><!--]--> redefine <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/reset.html" class="sidebar-item" aria-label="reset"><!--[--><!--]--> reset <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/retransform.html" class="sidebar-item" aria-label="retransform"><!--[--><!--]--> retransform <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/sc.html" class="sidebar-item" aria-label="sc"><!--[--><!--]--> sc <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/session.html" class="sidebar-item" aria-label="session"><!--[--><!--]--> session <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/sm.html" class="sidebar-item" aria-label="sm"><!--[--><!--]--> sm <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/stack.html" class="sidebar-item" aria-label="stack"><!--[--><!--]--> stack <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/stop.html" class="sidebar-item" aria-label="stop"><!--[--><!--]--> stop <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/sysenv.html" class="sidebar-item" aria-label="sysenv"><!--[--><!--]--> sysenv <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/sysprop.html" class="sidebar-item" aria-label="sysprop"><!--[--><!--]--> sysprop <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/tee.html" class="sidebar-item" aria-label="tee"><!--[--><!--]--> tee <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/thread.html" class="sidebar-item" aria-label="thread"><!--[--><!--]--> thread <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/trace.html" class="sidebar-item" aria-label="trace"><!--[--><!--]--> trace <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/3.x/doc/tt.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="tt"><!--[--><!--]--> tt <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/version.html" class="sidebar-item" aria-label="version"><!--[--><!--]--> version <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/vmoption.html" class="sidebar-item" aria-label="vmoption"><!--[--><!--]--> vmoption <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/vmtool.html" class="sidebar-item" aria-label="vmtool"><!--[--><!--]--> vmtool <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/watch.html" class="sidebar-item" aria-label="watch"><!--[--><!--]--> watch <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a href="/3.x/doc/advanced-use.md" class="sidebar-item collapsible" aria-label="其他特性"><!--[--><!--]--> 其他特性 <!--[--><!--]--></a><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/3.x/doc/async.html" class="sidebar-item" aria-label="Arthas 后台异步任务"><!--[--><!--]--> Arthas 后台异步任务 <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/save-log.html" class="sidebar-item" aria-label="执行结果存日志"><!--[--><!--]--> 执行结果存日志 <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/docker.html" class="sidebar-item" aria-label="Docker"><!--[--><!--]--> Docker <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/web-console.html" class="sidebar-item" aria-label="Web Console"><!--[--><!--]--> Web Console <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/tunnel.html" class="sidebar-item" aria-label="Arthas Tunnel"><!--[--><!--]--> Arthas Tunnel <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/idea-plugin.html" class="sidebar-item" aria-label="IDEA Plugin"><!--[--><!--]--> IDEA Plugin <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/arthas-properties.html" class="sidebar-item" aria-label="Arthas Properties"><!--[--><!--]--> Arthas Properties <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/agent.html" class="sidebar-item" aria-label="以 Java Agent 的方式启动"><!--[--><!--]--> 以 Java Agent 的方式启动 <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/spring-boot-starter.html" class="sidebar-item" aria-label="Arthas Spring Boot Starter"><!--[--><!--]--> Arthas Spring Boot Starter <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/http-api.html" class="sidebar-item" aria-label="Http API"><!--[--><!--]--> Http API <!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/batch-support.html" class="sidebar-item" aria-label="批处理功能"><!--[--><!--]--> 批处理功能 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a href="/3.x/doc/faq.html" class="sidebar-item" aria-label="FAQ"><!--[--><!--]--> FAQ <!--[--><!--]--></a><!----></li><li><a class="external-link sidebar-item" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case" rel="noopener noreferrer" target="_blank" aria-label="用户案例"><!--[--><!--]--><span>用户案例</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a><!----></li><li><a class="external-link sidebar-item" href="https://github.com/alibaba/arthas" rel="noopener noreferrer" target="_blank" aria-label="Star me at github"><!--[--><!--]--><span>Star me at github</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a><!----></li><li><a class="external-link sidebar-item" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md" rel="noopener noreferrer" target="_blank" aria-label="编译调试/参与贡献"><!--[--><!--]--><span>编译调试/参与贡献</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a><!----></li><li><a class="external-link sidebar-item" href="https://github.com/alibaba/arthas/releases" rel="noopener noreferrer" target="_blank" aria-label="Release Notes"><!--[--><!--]--><span>Release Notes</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a><!----></li><li><a href="/3.x/doc/contact-us.md" class="sidebar-item" aria-label="QQ 群/钉钉群"><!--[--><!--]--> QQ 群/钉钉群 <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="page" data-v-fdd717e0><!--[--><!--]--><div class="right-menu-padding theme-default-content" data-v-fdd717e0><!--[--><!--]--><div class="right-menu-wrapper" data-v-fdd717e0 data-v-64666cd5><div class="right-menu-margin" data-v-64666cd5><div class="right-menu-title" data-v-64666cd5>目录</div><div class="right-menu-content" data-v-64666cd5><!--[--><!--]--></div></div></div><div data-v-fdd717e0><h1 id="tt" tabindex="-1"><a class="header-anchor" href="#tt" aria-hidden="true">#</a> tt</h1><p><a href="https://arthas.aliyun.com/3.x/doc/arthas-tutorials.html?language=cn&id=command-tt" target="_blank" rel="noopener noreferrer"><code>tt</code>在线教程<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span></a></p><div class="custom-container tip"><p class="custom-container-title">提示</p><p>方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测</p></div><p><code>watch</code> 虽然很方便和灵活,但需要提前想清楚观察表达式的拼写,这对排查问题而言要求太高,因为很多时候我们并不清楚问题出自于何方,只能靠蛛丝马迹进行猜测。</p><p>这个时候如果能记录下当时方法调用的所有入参和返回值、抛出的异常会对整个问题的思考与判断非常有帮助。</p><p>于是乎,TimeTunnel 命令就诞生了。</p><h2 id="注意事项" tabindex="-1"><a class="header-anchor" href="#注意事项" aria-hidden="true">#</a> 注意事项</h2><ul><li>tt 命令的实现是:把函数的入参/返回值等,保存到一个<code>Map<Integer, TimeFragment></code>里,默认的大小是 100。</li><li>tt 相关功能在使用完之后,需要手动释放内存,否则长时间可能导致OOM。退出 arthas 不会自动清除 tt 的缓存 map。</li></ul><h2 id="使用参考" tabindex="-1"><a class="header-anchor" href="#使用参考" aria-hidden="true">#</a> 使用参考</h2><h3 id="启动-demo" tabindex="-1"><a class="header-anchor" href="#启动-demo" aria-hidden="true">#</a> 启动 Demo</h3><p>启动<a href="/3.x/doc/quick-start.html" class="">快速入门</a>里的<code>math-game</code>。</p><h3 id="记录调用" tabindex="-1"><a class="header-anchor" href="#记录调用" aria-hidden="true">#</a> 记录调用</h3><p>对于一个最基本的使用来说,就是记录下当前方法的每次调用环境现场。</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ tt <span class="token parameter variable">-t</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">66</span> ms.
|
|
|
INDEX TIMESTAMP COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> IS-RET IS-EXP OBJECT CLASS METHOD
|
|
|
-------------------------------------------------------------------------------------------------------------------------------------
|
|
|
<span class="token number">1000</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:38 <span class="token number">1.096236</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">1001</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:39 <span class="token number">0.191848</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">1002</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:40 <span class="token number">0.069523</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">1003</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:41 <span class="token number">0.186073</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">1004</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:42 <span class="token number">17.76437</span> <span class="token boolean">true</span> <span class="token boolean">false</span> 0x4b67cf4d MathGame primeFactors
|
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="指定-class-最大匹配数量" tabindex="-1"><a class="header-anchor" href="#指定-class-最大匹配数量" aria-hidden="true">#</a> 指定 Class 最大匹配数量</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ tt <span class="token parameter variable">-t</span> <span class="token parameter variable">-m</span> <span class="token number">1</span> demo.MathGame primeFactors
|
|
|
Press Q or Ctrl+C to abort.
|
|
|
Affect<span class="token punctuation">(</span>class count:1 , method count:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">130</span> ms, listenerId: <span class="token number">1</span>.
|
|
|
INDEX TIMESTAMP COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> IS-RET IS-EXP OBJECT CLASS METHOD
|
|
|
-------------------------------------------------------------------------------------------------------------------------------------
|
|
|
<span class="token number">1000</span> <span class="token number">2022</span>-12-25 <span class="token number">19</span>:41:45 <span class="token number">2.629929</span> <span class="token boolean">true</span> <span class="token boolean">false</span> 0x3bf400 MathGame primeFactors
|
|
|
<span class="token number">1001</span> <span class="token number">2022</span>-12-25 <span class="token number">19</span>:41:55 <span class="token number">0.146161</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x3bf400 MathGame primeFactors
|
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul><li><p>命令参数解析</p><ul><li><p><code>-t</code></p><p>tt 命令有很多个主参数,<code>-t</code> 就是其中之一。这个参数的表明希望记录下类 <code>*Test</code> 的 <code>print</code> 方法的每次执行情况。</p></li><li><p><code>-n 3</code></p><p>当你执行一个调用量不高的方法时可能你还能有足够的时间用 <code>CTRL+C</code> 中断 tt 命令记录的过程,但如果遇到调用量非常大的方法,瞬间就能将你的 JVM 内存撑爆。</p><p>此时你可以通过 <code>-n</code> 参数指定你需要记录的次数,当达到记录次数时 Arthas 会主动中断 tt 命令的记录过程,避免人工操作无法停止的情况。</p></li><li><p><code>-m 1</code></p><p>通过 <code>-m</code> 参数指定 Class 匹配的最大数量,防止匹配到的 Class 数量太多导致 JVM 挂起,默认值是 50。</p></li></ul></li><li><p>表格字段说明</p></li></ul><table><thead><tr><th>表格字段</th><th>字段解释</th></tr></thead><tbody><tr><td>INDEX</td><td>时间片段记录编号,每一个编号代表着一次调用,后续 tt 还有很多命令都是基于此编号指定记录操作,非常重要。</td></tr><tr><td>TIMESTAMP</td><td>方法执行的本机时间,记录了这个时间片段所发生的本机时间</td></tr><tr><td>COST(ms)</td><td>方法执行的耗时</td></tr><tr><td>IS-RET</td><td>方法是否以正常返回的形式结束</td></tr><tr><td>IS-EXP</td><td>方法是否以抛异常的形式结束</td></tr><tr><td>OBJECT</td><td>执行对象的<code>hashCode()</code>,注意,曾经有人误认为是对象在 JVM 中的内存地址,但很遗憾他不是。但他能帮助你简单的标记当前执行方法的类实体</td></tr><tr><td>CLASS</td><td>执行的类名</td></tr><tr><td>METHOD</td><td>执行的方法名</td></tr></tbody></table><ul><li><p>条件表达式</p><p>不知道大家是否有在使用过程中遇到以下困惑</p><ul><li>Arthas 似乎很难区分出重载的方法</li><li>我只需要观察特定参数,但是 tt 却全部都给我记录了下来</li></ul><p>条件表达式也是用 <code>OGNL</code> 来编写,核心的判断对象依然是 <code>Advice</code> 对象。除了 <code>tt</code> 命令之外,<code>watch</code>、<code>trace</code>、<code>stack</code> 命令也都支持条件表达式。</p></li><li><p>解决方法重载</p><p><code>tt -t *Test print params.length==1</code></p><p>通过制定参数个数的形式解决不同的方法签名,如果参数个数一样,你还可以这样写</p><p><code>tt -t *Test print 'params[1] instanceof Integer'</code></p></li><li><p>解决指定参数</p><p><code>tt -t *Test print params[0].mobile=="13989838402"</code></p></li><li><p>构成条件表达式的 <code>Advice</code> 对象</p><p>前边看到了很多条件表达式中,都使用了 <code>params[0]</code>,有关这个变量的介绍,请参考<a href="/3.x/doc/advice-class.html" class="">表达式核心变量</a></p></li></ul><h3 id="检索调用记录" tabindex="-1"><a class="header-anchor" href="#检索调用记录" aria-hidden="true">#</a> 检索调用记录</h3><p>当你用 <code>tt</code> 记录了一大片的时间片段之后,你希望能从中筛选出自己需要的时间片段,这个时候你就需要对现有记录进行检索。</p><p>假设我们有这些记录</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ tt <span class="token parameter variable">-l</span>
|
|
|
INDEX TIMESTAMP COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> IS-RET IS-EXP OBJECT CLASS METHOD
|
|
|
-------------------------------------------------------------------------------------------------------------------------------------
|
|
|
<span class="token number">1000</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:38 <span class="token number">1.096236</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">1001</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:39 <span class="token number">0.191848</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">1002</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:40 <span class="token number">0.069523</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">1003</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:41 <span class="token number">0.186073</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">1004</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:42 <span class="token number">17.76437</span> <span class="token boolean">true</span> <span class="token boolean">false</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">9</span>
|
|
|
<span class="token number">1005</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:43 <span class="token number">0.4776</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
Affect<span class="token punctuation">(</span>row-cnt:6<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">4</span> ms.
|
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>我需要筛选出 <code>primeFactors</code> 方法的调用信息</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ tt <span class="token parameter variable">-s</span> <span class="token string">'method.name=="primeFactors"'</span>
|
|
|
INDEX TIMESTAMP COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> IS-RET IS-EXP OBJECT CLASS METHOD
|
|
|
-------------------------------------------------------------------------------------------------------------------------------------
|
|
|
<span class="token number">1000</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:38 <span class="token number">1.096236</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">1001</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:39 <span class="token number">0.191848</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">1002</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:40 <span class="token number">0.069523</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">1003</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:41 <span class="token number">0.186073</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">1004</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:42 <span class="token number">17.76437</span> <span class="token boolean">true</span> <span class="token boolean">false</span> 0x4b67cf4d MathGame primeFactors
|
|
|
<span class="token number">9</span>
|
|
|
<span class="token number">1005</span> <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:43 <span class="token number">0.4776</span> <span class="token boolean">false</span> <span class="token boolean">true</span> 0x4b67cf4d MathGame primeFactors
|
|
|
Affect<span class="token punctuation">(</span>row-cnt:6<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">607</span> ms.
|
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>你需要一个 <code>-s</code> 参数。<span style="color:red;">同样的,搜索表达式的核心对象依旧是 <code>Advice</code> 对象。</span></p><h3 id="查看调用信息" tabindex="-1"><a class="header-anchor" href="#查看调用信息" aria-hidden="true">#</a> 查看调用信息</h3><p>对于具体一个时间片的信息而言,你可以通过 <code>-i</code> 参数后边跟着对应的 <code>INDEX</code> 编号查看到他的详细信息。</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ tt <span class="token parameter variable">-i</span> <span class="token number">1003</span>
|
|
|
INDEX <span class="token number">1003</span>
|
|
|
GMT-CREATE <span class="token number">2018</span>-12-04 <span class="token number">11</span>:15:41
|
|
|
COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> <span class="token number">0.186073</span>
|
|
|
OBJECT 0x4b67cf4d
|
|
|
CLASS demo.MathGame
|
|
|
METHOD primeFactors
|
|
|
IS-RETURN <span class="token boolean">false</span>
|
|
|
IS-EXCEPTION <span class="token boolean">true</span>
|
|
|
PARAMETERS<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> @Integer<span class="token punctuation">[</span>-564322413<span class="token punctuation">]</span>
|
|
|
THROW-EXCEPTION java.lang.IllegalArgumentException: number is: -564322413, need <span class="token operator">>=</span> <span class="token number">2</span>
|
|
|
at demo.MathGame.primeFactors<span class="token punctuation">(</span>MathGame.java:46<span class="token punctuation">)</span>
|
|
|
at demo.MathGame.run<span class="token punctuation">(</span>MathGame.java:24<span class="token punctuation">)</span>
|
|
|
at demo.MathGame.main<span class="token punctuation">(</span>MathGame.java:16<span class="token punctuation">)</span>
|
|
|
|
|
|
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">11</span> ms.
|
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="重做一次调用" tabindex="-1"><a class="header-anchor" href="#重做一次调用" aria-hidden="true">#</a> 重做一次调用</h3><p>当你稍稍做了一些调整之后,你可能需要前端系统重新触发一次你的调用,此时得求爷爷告奶奶的需要前端配合联调的同学再次发起一次调用。而有些场景下,这个调用不是这么好触发的。</p><p><code>tt</code> 命令由于保存了当时调用的所有现场信息,所以我们可以自己主动对一个 <code>INDEX</code> 编号的时间片自主发起一次调用,从而解放你的沟通成本。此时你需要 <code>-p</code> 参数。通过 <code>--replay-times</code> 指定 调用次数,通过 <code>--replay-interval</code> 指定多次调用间隔(单位 ms, 默认 1000ms)</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ tt <span class="token parameter variable">-i</span> <span class="token number">1004</span> <span class="token parameter variable">-p</span>
|
|
|
RE-INDEX <span class="token number">1004</span>
|
|
|
GMT-REPLAY <span class="token number">2018</span>-12-04 <span class="token number">11</span>:26:00
|
|
|
OBJECT 0x4b67cf4d
|
|
|
CLASS demo.MathGame
|
|
|
METHOD primeFactors
|
|
|
PARAMETERS<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> @Integer<span class="token punctuation">[</span><span class="token number">946738738</span><span class="token punctuation">]</span>
|
|
|
IS-RETURN <span class="token boolean">true</span>
|
|
|
IS-EXCEPTION <span class="token boolean">false</span>
|
|
|
COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> <span class="token number">0.186073</span>
|
|
|
RETURN-OBJ @ArrayList<span class="token punctuation">[</span>
|
|
|
@Integer<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span>,
|
|
|
@Integer<span class="token punctuation">[</span><span class="token number">11</span><span class="token punctuation">]</span>,
|
|
|
@Integer<span class="token punctuation">[</span><span class="token number">17</span><span class="token punctuation">]</span>,
|
|
|
@Integer<span class="token punctuation">[</span><span class="token number">2531387</span><span class="token punctuation">]</span>,
|
|
|
<span class="token punctuation">]</span>
|
|
|
Time fragment<span class="token punctuation">[</span><span class="token number">1004</span><span class="token punctuation">]</span> successfully replayed.
|
|
|
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">14</span> ms.
|
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>你会发现结果虽然一样,但调用的路径发生了变化,由原来的程序发起变成了 Arthas 自己的内部线程发起的调用了。</p><h3 id="观察表达式" tabindex="-1"><a class="header-anchor" href="#观察表达式" aria-hidden="true">#</a> 观察表达式</h3><p><code>-w, --watch-express</code> 观察时空隧道使用<code>ognl</code> 表达式</p><ul><li>使用<a href="/3.x/doc/advice-class.html" class="">表达式核心变量</a>中所有变量作为已知条件编写表达式。</li></ul><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@10718<span class="token punctuation">]</span>$ tt <span class="token parameter variable">-t</span> demo.MathGame run <span class="token parameter variable">-n</span> <span class="token number">5</span>
|
|
|
Press Q or Ctrl+C to abort.
|
|
|
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">56</span> ms, listenerId: <span class="token number">1</span>
|
|
|
INDEX TIMESTAMP COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> IS-RET IS-EXP OBJECT CLASS METHOD
|
|
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
<span class="token number">1000</span> <span class="token number">2021</span>-01-08 <span class="token number">21</span>:54:17 <span class="token number">0.901091</span> <span class="token boolean">true</span> <span class="token boolean">false</span> 0x7699a589 MathGame run
|
|
|
<span class="token punctuation">[</span>arthas@10718<span class="token punctuation">]</span>$ tt <span class="token parameter variable">-w</span> <span class="token string">'target.illegalArgumentCount'</span> <span class="token parameter variable">-x</span> <span class="token number">1</span> <span class="token parameter variable">-i</span> <span class="token number">1000</span>
|
|
|
@Integer<span class="token punctuation">[</span><span class="token number">60</span><span class="token punctuation">]</span>
|
|
|
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">7</span> ms.
|
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul><li>获取类的静态字段、调用类的静态方法</li></ul><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@10718<span class="token punctuation">]</span>$ tt <span class="token parameter variable">-t</span> demo.MathGame run <span class="token parameter variable">-n</span> <span class="token number">5</span>
|
|
|
Press Q or Ctrl+C to abort.
|
|
|
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">56</span> ms, listenerId: <span class="token number">1</span>
|
|
|
INDEX TIMESTAMP COST<span class="token punctuation">(</span>ms<span class="token punctuation">)</span> IS-RET IS-EXP OBJECT CLASS METHOD
|
|
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
<span class="token number">1000</span> <span class="token number">2021</span>-01-08 <span class="token number">21</span>:54:17 <span class="token number">0.901091</span> <span class="token boolean">true</span> <span class="token boolean">false</span> 0x7699a589 MathGame run
|
|
|
<span class="token punctuation">[</span>arthas@10718<span class="token punctuation">]</span>$ tt <span class="token parameter variable">-w</span> <span class="token string">'@demo.MathGame@random.nextInt(100)'</span> <span class="token parameter variable">-x</span> <span class="token number">1</span> <span class="token parameter variable">-i</span> <span class="token number">1000</span>
|
|
|
@Integer<span class="token punctuation">[</span><span class="token number">46</span><span class="token punctuation">]</span>
|
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>注意这里使用 <code>com.taobao.arthas.core.advisor.Advice#getLoader</code>加载,使用精确<code>classloader</code> <a href="/3.x/doc/ognl.html" class="">ognl</a>更好。</p><p>高级用法 <a href="https://github.com/alibaba/arthas/issues/482" target="_blank" rel="noopener noreferrer">获取 spring context 调用 bean 方法<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span></a></p><ul><li><p>需要强调的点</p><ol><li><p><strong>ThreadLocal 信息丢失</strong></p><p>很多框架偷偷的将一些环境变量信息塞到了发起调用线程的 ThreadLocal 中,由于调用线程发生了变化,这些 ThreadLocal 线程信息无法通过 Arthas 保存,所以这些信息将会丢失。</p><p>一些常见的 CASE 比如:鹰眼的 TraceId 等。</p></li><li><p><strong>引用的对象</strong></p><p>需要强调的是,<code>tt</code> 命令是将当前环境的对象引用保存起来,但仅仅也只能保存一个引用而已。如果方法内部对入参进行了变更,或者返回的对象经过了后续的处理,那么在 <code>tt</code> 查看的时候将无法看到当时最准确的值。这也是为什么 <code>watch</code> 命令存在的意义。</p></li></ol></li></ul><h3 id="通过索引删除指定的-tt-记录" tabindex="-1"><a class="header-anchor" href="#通过索引删除指定的-tt-记录" aria-hidden="true">#</a> 通过索引删除指定的 tt 记录</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>tt -d 1001
|
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="清除所有的-tt-记录" tabindex="-1"><a class="header-anchor" href="#清除所有的-tt-记录" aria-hidden="true">#</a> 清除所有的 tt 记录</h3><div class="language-text ext-text line-numbers-mode"><pre class="language-text"><code>tt --delete-all
|
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div></div><!--[--><!--]--></div><footer class="page-meta right-menu-padding" data-v-fdd717e0><div class="meta-item edit-link"><a class="external-link meta-item-label" href="https://github.com/alibaba/arthas/edit/master/site/docs/doc/tt.md" rel="noopener noreferrer" target="_blank" aria-label="在 GitHub 上编辑此页"><!--[--><!--]--><span>在 GitHub 上编辑此页</span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a></div><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><div class="meta-item contributors"><span class="meta-item-label">贡献者: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: hengyunabc@gmail.com">hengyunabc</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: hengyunabc@users.noreply.github.com">hengyunabc</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: superheizai@aliyun.com">superheizai</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: i@fatpandac.com">Fatpandac</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: anrun388@gmail.com">SiuHui</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: 35672972+pandaapo@users.noreply.github.com">pandaapo</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: hollowman186@vip.qq.com">Hollow Man</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: xiangmz0928@gmail.com">Xiangmingzhe</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: snipercy@users.noreply.github.com">vic</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: 983433479@qq.com">汪吉</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav right-menu-padding" data-v-fdd717e0><p class="inner"><span class="prev"><a href="/3.x/doc/trace.html" class="" aria-label="trace"><!--[--><!--]--> trace <!--[--><!--]--></a></span><span class="next"><a href="/3.x/doc/version.html" class="" aria-label="version"><!--[--><!--]--> version <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
|
|
|
<script type="module" src="/3.x/assets/app.4d248835.js" defer></script>
|
|
|
</body>
|
|
|
</html>
|