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

152 lines
125 KiB
HTML

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!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>trace | arthas</title><meta name="description" content="arthas 使用文档">
<link rel="modulepreload" href="/assets/app.5024572d.js"><link rel="modulepreload" href="/assets/trace.html.29692689.js"><link rel="modulepreload" href="/assets/trace.html.7fc97a55.js"><link rel="prefetch" href="/assets/index.html.0310d6b7.js"><link rel="prefetch" href="/assets/index.html.26b36e14.js"><link rel="prefetch" href="/assets/index.html.f81666f3.js"><link rel="prefetch" href="/assets/advanced-use.html.d19ed71d.js"><link rel="prefetch" href="/assets/advice-class.html.1d3efc8d.js"><link rel="prefetch" href="/assets/agent.html.03c76533.js"><link rel="prefetch" href="/assets/arthas-properties.html.0a68e303.js"><link rel="prefetch" href="/assets/arthas3.html.e9ff98d3.js"><link rel="prefetch" href="/assets/async.html.2d7e17b7.js"><link rel="prefetch" href="/assets/auth.html.e6d4b91c.js"><link rel="prefetch" href="/assets/base64.html.867d2b97.js"><link rel="prefetch" href="/assets/batch-support.html.520a314a.js"><link rel="prefetch" href="/assets/cat.html.0e3f9bec.js"><link rel="prefetch" href="/assets/classloader.html.abb8c597.js"><link rel="prefetch" href="/assets/cls.html.67a6c0fd.js"><link rel="prefetch" href="/assets/commands.html.03ccce33.js"><link rel="prefetch" href="/assets/contact-us.html.fca90e78.js"><link rel="prefetch" href="/assets/dashboard.html.a1edecce.js"><link rel="prefetch" href="/assets/docker.html.71dad61b.js"><link rel="prefetch" href="/assets/download.html.d73305eb.js"><link rel="prefetch" href="/assets/dump.html.c3686557.js"><link rel="prefetch" href="/assets/echo.html.47b2931c.js"><link rel="prefetch" href="/assets/faq.html.6193ecbd.js"><link rel="prefetch" href="/assets/getstatic.html.90b40e46.js"><link rel="prefetch" href="/assets/grep.html.36066f19.js"><link rel="prefetch" href="/assets/groovy.html.041e64fb.js"><link rel="prefetch" href="/assets/heapdump.html.5f1f0a0f.js"><link rel="prefetch" href="/assets/help.html.cc8081c7.js"><link rel="prefetch" href="/assets/history.html.799a682b.js"><link rel="prefetch" href="/assets/http-api.html.6176e7ac.js"><link rel="prefetch" href="/assets/idea-plugin.html.a7268a5f.js"><link rel="prefetch" href="/assets/install-detail.html.8e837092.js"><link rel="prefetch" href="/assets/jad.html.2f34aa50.js"><link rel="prefetch" href="/assets/jfr.html.9b233b9d.js"><link rel="prefetch" href="/assets/jvm.html.66acd429.js"><link rel="prefetch" href="/assets/keymap.html.7cd121a8.js"><link rel="prefetch" href="/assets/logger.html.2598a2ad.js"><link rel="prefetch" href="/assets/manual-install.html.b48552bf.js"><link rel="prefetch" href="/assets/mbean.html.865d8303.js"><link rel="prefetch" href="/assets/mc.html.417d96c3.js"><link rel="prefetch" href="/assets/memory.html.bb61b4be.js"><link rel="prefetch" href="/assets/monitor.html.8168838f.js"><link rel="prefetch" href="/assets/ognl.html.5a4b1f35.js"><link rel="prefetch" href="/assets/options.html.4862477c.js"><link rel="prefetch" href="/assets/perfcounter.html.96e8509c.js"><link rel="prefetch" href="/assets/profiler.html.3785275e.js"><link rel="prefetch" href="/assets/pwd.html.9d18ed39.js"><link rel="prefetch" href="/assets/quick-start.html.faa996a0.js"><link rel="prefetch" href="/assets/quit.html.99d279b0.js"><link rel="prefetch" href="/assets/redefine.html.c75cc086.js"><link rel="prefetch" href="/assets/release-notes.html.3c31db7c.js"><link rel="prefetch" href="/assets/reset.html.5a9cddf1.js"><link rel="prefetch" href="/assets/retransform.html.ce38448b.js"><link rel="prefetch" href="/assets/save-log.html.037bac18.js"><link rel="prefetch" href="/assets/sc.html.556dbf54.js"><link rel="prefetch" href="/assets/session.html.3205414e.js"><link rel="prefetch" href="/assets/sm.html.87672a15.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.e00635b2.js"><link rel="prefetch" href="/assets/stack.html.82c27723.js"><link rel="prefetch" href="/assets/start-arthas.html.8895ebb1.js"><link rel="prefetch" href="/assets/stop.html.37513358.js"><link rel="prefetch" href="/assets/sysenv.html.fae02d4a.js"><link rel="prefetch" href="/assets/sysprop.html.0c2447a7.js"><link rel="prefetch" href="/assets/tee.html.65a6dcbf.js"><link rel="prefetch" href="/assets/thread.html.7d4f783c.js"><link rel="prefetch" href="/assets/tt.html.2f8ba6a9.js"><link rel="prefetch" href="/assets/tunnel.html.f6c95c19.js"><link rel="prefetch" href="/assets/version.html.65d1d217.js"><link rel="prefetch" href="/assets/vmoption.html.4a4452fc.js"><link rel="prefetch" href="/assets/vmtool.html.785e15b0.js"><link rel="prefetch" href="/assets/watch.html.8ab01f20.js"><link rel="prefetch" href="/assets/web-console.html.ee889bc8.js"><link rel="prefetch" href="/assets/index.html.4473f26b.js"><link rel="prefetch" href="/assets/advanced-use.html.1a28f6a5.js"><link rel="prefetch" href="/assets/advice-class.html.d8ad50b3.js"><link rel="prefetch" href="/assets/agent.html.7961745e.js"><link rel="prefetch" href="/assets/arthas-properties.html.8021fe71.js"><link rel="prefetch" href="/assets/async.html.cee6c639.js"><link rel="prefetch" href="/assets/auth.html.d9567203.js"><link rel="prefetch" href="/assets/base64.html.f23d1c1a.js"><link rel="prefetch" href="/assets/batch-support.html.316cd7e8.js"><link rel="prefetch" href="/assets/cat.html.4335c5dc.js"><link rel="prefetch" href="/assets/classloader.html.bf7956ab.js"><link rel="prefetch" href="/assets/cls.html.97d2b84f.js"><link rel="prefetch" href="/assets/commands.html.15628afe.js"><link rel="prefetch" href="/assets/contact-us.html.903f2e33.js"><link rel="prefetch" href="/assets/dashboard.html.bcc51fa6.js"><link rel="prefetch" href="/assets/docker.html.6569bd54.js"><link rel="prefetch" href="/assets/download.html.c6ec554d.js"><link rel="prefetch" href="/assets/dump.html.ceb6ce3f.js"><link rel="prefetch" href="/assets/echo.html.78d074ba.js"><link rel="prefetch" href="/assets/faq.html.ae91bbb1.js"><link rel="prefetch" href="/assets/getstatic.html.238af461.js"><link rel="prefetch" href="/assets/grep.html.765b9db4.js"><link rel="prefetch" href="/assets/groovy.html.07ba29d4.js"><link rel="prefetch" href="/assets/heapdump.html.45aa4058.js"><link rel="prefetch" href="/assets/help.html.6b5e680d.js"><link rel="prefetch" href="/assets/history.html.cbd4f1dc.js"><link rel="prefetch" href="/assets/http-api.html.08106e49.js"><link rel="prefetch" href="/assets/idea-plugin.html.696d1a9b.js"><link rel="prefetch" href="/assets/install-detail.html.ada22454.js"><link rel="prefetch" href="/assets/jad.html.a61a52e4.js"><link rel="prefetch" href="/assets/jfr.html.a65beb58.js"><link rel="prefetch" href="/assets/jvm.html.b8b1aa17.js"><link rel="prefetch" href="/assets/keymap.html.4b97d548.js"><link rel="prefetch" href="/assets/logger.html.4c886eeb.js"><link rel="prefetch" href="/assets/manual-install.html.b1712f99.js"><link rel="prefetch" href="/assets/mbean.html.e50ffcee.js"><link rel="prefetch" href="/assets/mc.html.aa0438cf.js"><link rel="prefetch" href="/assets/memory.html.bc85782d.js"><link rel="prefetch" href="/assets/monitor.html.c8fd104a.js"><link rel="prefetch" href="/assets/ognl.html.5fa32203.js"><link rel="prefetch" href="/assets/options.html.e9d3bf7d.js"><link rel="prefetch" href="/assets/perfcounter.html.6022385f.js"><link rel="prefetch" href="/assets/profiler.html.6187e56a.js"><link rel="prefetch" href="/assets/pwd.html.ac6fa9ed.js"><link rel="prefetch" href="/assets/quick-start.html.e2dbf20d.js"><link rel="prefetch" href="/assets/quit.html.3576a0df.js"><link rel="prefetch" href="/assets/redefine.html.647030fe.js"><link rel="prefetch" href="/assets/release-notes.html.9cd9ef9a.js"><link rel="prefetch" href="/assets/reset.html.aea64667.js"><link rel="prefetch" href="/assets/retransform.html.d2256f08.js"><link rel="prefetch" href="/assets/save-log.html.2e2ab47b.js"><link rel="prefetch" href="/assets/sc.html.73cdcc54.js"><link rel="prefetch" href="/assets/session.html.f299a357.js"><link rel="prefetch" href="/assets/sm.html.6fb2da77.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.d3fe861a.js"><link rel="prefetch" href="/assets/stack.html.3a3543ef.js"><link rel="prefetch" href="/assets/start-arthas.html.89aedbd5.js"><link rel="prefetch" href="/assets/stop.html.375aab78.js"><link rel="prefetch" href="/assets/sysenv.html.eebfa441.js"><link rel="prefetch" href="/assets/sysprop.html.d2af9b76.js"><link rel="prefetch" href="/assets/tee.html.3b901b19.js"><link rel="prefetch" href="/assets/thread.html.7bd6ce5a.js"><link rel="prefetch" href="/assets/trace.html.1816b5e5.js"><link rel="prefetch" href="/assets/tt.html.9fd40d2c.js"><link rel="prefetch" href="/assets/tunnel.html.c4dbd72e.js"><link rel="prefetch" href="/assets/version.html.94606777.js"><link rel="prefetch" href="/assets/vmoption.html.07f6d06f.js"><link rel="prefetch" href="/assets/vmtool.html.6ca46c5c.js"><link rel="prefetch" href="/assets/watch.html.61dde141.js"><link rel="prefetch" href="/assets/web-console.html.7f55a6b5.js"><link rel="prefetch" href="/assets/intro.html.fb69e77b.js"><link rel="prefetch" href="/assets/user-question-history11440.html.0050c901.js"><link rel="prefetch" href="/assets/user-question-history11442.html.2b6f935c.js"><link rel="prefetch" href="/assets/user-question-history11443.html.f6cd4964.js"><link rel="prefetch" href="/assets/user-question-history11444.html.ce992129.js"><link rel="prefetch" href="/assets/user-question-history11450.html.2756279b.js"><link rel="prefetch" href="/assets/user-question-history11451.html.3d594a86.js"><link rel="prefetch" href="/assets/user-question-history11452.html.e94aac28.js"><link rel="prefetch" href="/assets/user-question-history11453.html.8a135789.js"><link rel="prefetch" href="/assets/user-question-history11454.html.7bbd3f53.js"><link rel="prefetch" href="/assets/user-question-history11466.html.6a554403.js"><link rel="prefetch" href="/assets/user-question-history11467.html.dfe7d3f0.js"><link rel="prefetch" href="/assets/user-question-history11468.html.07400649.js"><link rel="prefetch" href="/assets/user-question-history11469.html.267c96b6.js"><link rel="prefetch" href="/assets/user-question-history11784.html.56fcf97f.js"><link rel="prefetch" href="/assets/user-question-history11795.html.d21e8e72.js"><link rel="prefetch" href="/assets/user-question-history11809.html.47e34f67.js"><link rel="prefetch" href="/assets/user-question-history11810.html.3f2e0760.js"><link rel="prefetch" href="/assets/user-question-history11814.html.89c2563e.js"><link rel="prefetch" href="/assets/user-question-history12453.html.163bc9ad.js"><link rel="prefetch" href="/assets/user-question-history12454.html.fcccb708.js"><link rel="prefetch" href="/assets/user-question-history12455.html.3aed1fc8.js"><link rel="prefetch" href="/assets/user-question-history12706.html.3cf454ba.js"><link rel="prefetch" href="/assets/user-question-history12715.html.824bab31.js"><link rel="prefetch" href="/assets/user-question-history12716.html.aea93112.js"><link rel="prefetch" href="/assets/user-question-history12740.html.6d3a85f1.js"><link rel="prefetch" href="/assets/user-question-history12741.html.7155ebde.js"><link rel="prefetch" href="/assets/user-question-history13448.html.a659e900.js"><link rel="prefetch" href="/assets/user-question-history13504.html.f86b0c17.js"><link rel="prefetch" href="/assets/user-question-history13506.html.756c0aef.js"><link rel="prefetch" href="/assets/user-question-history13507.html.b410fde5.js"><link rel="prefetch" href="/assets/user-question-history13508.html.3cfbd3ac.js"><link rel="prefetch" href="/assets/user-question-history13509.html.be494725.js"><link rel="prefetch" href="/assets/user-question-history13510.html.4b10ee98.js"><link rel="prefetch" href="/assets/user-question-history13511.html.a4c61493.js"><link rel="prefetch" href="/assets/user-question-history13512.html.e198ca8d.js"><link rel="prefetch" href="/assets/user-question-history13513.html.e75202ae.js"><link rel="prefetch" href="/assets/user-question-history13522.html.46939f73.js"><link rel="prefetch" href="/assets/user-question-history14763.html.140717c7.js"><link rel="prefetch" href="/assets/user-question-history14831.html.de4216e5.js"><link rel="prefetch" href="/assets/user-question-history14832.html.22fc1910.js"><link rel="prefetch" href="/assets/user-question-history14833.html.b17c1b6b.js"><link rel="prefetch" href="/assets/user-question-history14834.html.e96bfd10.js"><link rel="prefetch" href="/assets/user-question-history14840.html.b43bc59a.js"><link rel="prefetch" href="/assets/user-question-history14843.html.f49a7feb.js"><link rel="prefetch" href="/assets/user-question-history15167.html.1f0041fe.js"><link rel="prefetch" href="/assets/user-question-history15543.html.8f8a0315.js"><link rel="prefetch" href="/assets/user-question-history15726.html.fd6ce750.js"><link rel="prefetch" href="/assets/user-question-history15728.html.ccdc912d.js"><link rel="prefetch" href="/assets/user-question-history15729.html.471a1b8f.js"><link rel="prefetch" href="/assets/user-question-history15730.html.bd03a518.js"><link rel="prefetch" href="/assets/user-question-history15731.html.559f9f08.js"><link rel="prefetch" href="/assets/user-question-history15735.html.80cab5b9.js"><link rel="prefetch" href="/assets/user-question-history15736.html.412f1499.js"><link rel="prefetch" href="/assets/user-question-history15737.html.18923199.js"><link rel="prefetch" href="/assets/user-question-history15738.html.6ceeca93.js"><link rel="prefetch" href="/assets/user-question-history15739.html.86e3a2dc.js"><link rel="prefetch" href="/assets/user-question-history15740.html.e1844f14.js"><link rel="prefetch" href="/assets/404.html.954ede21.js"><link rel="prefetch" href="/assets/index.html.30ce3385.js"><link rel="prefetch" href="/assets/index.html.a40e9b51.js"><link rel="prefetch" href="/assets/index.html.d646c9e0.js"><link rel="prefetch" href="/assets/advanced-use.html.69173a07.js"><link rel="prefetch" href="/assets/advice-class.html.44dc3045.js"><link rel="prefetch" href="/assets/agent.html.76c735d0.js"><link rel="prefetch" href="/assets/arthas-properties.html.81d42c35.js"><link rel="prefetch" href="/assets/arthas3.html.0b19650f.js"><link rel="prefetch" href="/assets/async.html.dda2afae.js"><link rel="prefetch" href="/assets/auth.html.07bdc876.js"><link rel="prefetch" href="/assets/base64.html.bcead116.js"><link rel="prefetch" href="/assets/batch-support.html.4641bd67.js"><link rel="prefetch" href="/assets/cat.html.17a41250.js"><link rel="prefetch" href="/assets/classloader.html.4284e89d.js"><link rel="prefetch" href="/assets/cls.html.7418b29d.js"><link rel="prefetch" href="/assets/commands.html.9195266b.js"><link rel="prefetch" href="/assets/contact-us.html.5761289f.js"><link rel="prefetch" href="/assets/dashboard.html.a121fb6b.js"><link rel="prefetch" href="/assets/docker.html.03d1872a.js"><link rel="prefetch" href="/assets/download.html.17050c97.js"><link rel="prefetch" href="/assets/dump.html.150553f5.js"><link rel="prefetch" href="/assets/echo.html.b6e5f092.js"><link rel="prefetch" href="/assets/faq.html.0adab3f6.js"><link rel="prefetch" href="/assets/getstatic.html.585460ac.js"><link rel="prefetch" href="/assets/grep.html.7bfe65a7.js"><link rel="prefetch" href="/assets/groovy.html.9814fe6a.js"><link rel="prefetch" href="/assets/heapdump.html.03900a35.js"><link rel="prefetch" href="/assets/help.html.1a9f5df9.js"><link rel="prefetch" href="/assets/history.html.7fdc3fbc.js"><link rel="prefetch" href="/assets/http-api.html.d43050d6.js"><link rel="prefetch" href="/assets/idea-plugin.html.eaa87fb3.js"><link rel="prefetch" href="/assets/install-detail.html.c7db59fe.js"><link rel="prefetch" href="/assets/jad.html.538333fc.js"><link rel="prefetch" href="/assets/jfr.html.5892aad4.js"><link rel="prefetch" href="/assets/jvm.html.a09c582f.js"><link rel="prefetch" href="/assets/keymap.html.f350d350.js"><link rel="prefetch" href="/assets/logger.html.77aef58f.js"><link rel="prefetch" href="/assets/manual-install.html.b52b3383.js"><link rel="prefetch" href="/assets/mbean.html.fb10ca7f.js"><link rel="prefetch" href="/assets/mc.html.5651a161.js"><link rel="prefetch" href="/assets/memory.html.51f06c97.js"><link rel="prefetch" href="/assets/monitor.html.0c917472.js"><link rel="prefetch" href="/assets/ognl.html.51c27cdf.js"><link rel="prefetch" href="/assets/options.html.061c0499.js"><link rel="prefetch" href="/assets/perfcounter.html.7a2e7783.js"><link rel="prefetch" href="/assets/profiler.html.7d7d2c16.js"><link rel="prefetch" href="/assets/pwd.html.94331a5b.js"><link rel="prefetch" href="/assets/quick-start.html.d0d7d085.js"><link rel="prefetch" href="/assets/quit.html.07d23945.js"><link rel="prefetch" href="/assets/redefine.html.b51d4760.js"><link rel="prefetch" href="/assets/release-notes.html.97884707.js"><link rel="prefetch" href="/assets/reset.html.8d888519.js"><link rel="prefetch" href="/assets/retransform.html.33e2a183.js"><link rel="prefetch" href="/assets/save-log.html.65bbf18d.js"><link rel="prefetch" href="/assets/sc.html.b97ba863.js"><link rel="prefetch" href="/assets/session.html.f12fb284.js"><link rel="prefetch" href="/assets/sm.html.b1573b78.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.62c01266.js"><link rel="prefetch" href="/assets/stack.html.f9218289.js"><link rel="prefetch" href="/assets/start-arthas.html.386fe5e8.js"><link rel="prefetch" href="/assets/stop.html.1809fc4b.js"><link rel="prefetch" href="/assets/sysenv.html.d3ed1a43.js"><link rel="prefetch" href="/assets/sysprop.html.d5a36f08.js"><link rel="prefetch" href="/assets/tee.html.100828a3.js"><link rel="prefetch" href="/assets/thread.html.1c837b34.js"><link rel="prefetch" href="/assets/tt.html.23b440e4.js"><link rel="prefetch" href="/assets/tunnel.html.b5499e98.js"><link rel="prefetch" href="/assets/version.html.3e704c32.js"><link rel="prefetch" href="/assets/vmoption.html.82b62241.js"><link rel="prefetch" href="/assets/vmtool.html.aa90ec1f.js"><link rel="prefetch" href="/assets/watch.html.6bbe9bc3.js"><link rel="prefetch" href="/assets/web-console.html.dbc0dbf0.js"><link rel="prefetch" href="/assets/index.html.4201d415.js"><link rel="prefetch" href="/assets/advanced-use.html.90868e26.js"><link rel="prefetch" href="/assets/advice-class.html.0ca455a3.js"><link rel="prefetch" href="/assets/agent.html.251dddae.js"><link rel="prefetch" href="/assets/arthas-properties.html.938af046.js"><link rel="prefetch" href="/assets/async.html.5ce1d1ce.js"><link rel="prefetch" href="/assets/auth.html.2a003b09.js"><link rel="prefetch" href="/assets/base64.html.00f201c7.js"><link rel="prefetch" href="/assets/batch-support.html.6043e5f6.js"><link rel="prefetch" href="/assets/cat.html.6b2e0086.js"><link rel="prefetch" href="/assets/classloader.html.413109bd.js"><link rel="prefetch" href="/assets/cls.html.29b1f806.js"><link rel="prefetch" href="/assets/commands.html.e8942ef3.js"><link rel="prefetch" href="/assets/contact-us.html.4526730f.js"><link rel="prefetch" href="/assets/dashboard.html.7edf7acb.js"><link rel="prefetch" href="/assets/docker.html.03ba71a6.js"><link rel="prefetch" href="/assets/download.html.8810095d.js"><link rel="prefetch" href="/assets/dump.html.4991b48d.js"><link rel="prefetch" href="/assets/echo.html.7650a83b.js"><link rel="prefetch" href="/assets/faq.html.ea3e918c.js"><link rel="prefetch" href="/assets/getstatic.html.500e6219.js"><link rel="prefetch" href="/assets/grep.html.bf503089.js"><link rel="prefetch" href="/assets/groovy.html.49d078a1.js"><link rel="prefetch" href="/assets/heapdump.html.660526d5.js"><link rel="prefetch" href="/assets/help.html.e42cbec6.js"><link rel="prefetch" href="/assets/history.html.5ede54ab.js"><link rel="prefetch" href="/assets/http-api.html.9ba1dee0.js"><link rel="prefetch" href="/assets/idea-plugin.html.f5332dbc.js"><link rel="prefetch" href="/assets/install-detail.html.71fdac53.js"><link rel="prefetch" href="/assets/jad.html.6c5585d2.js"><link rel="prefetch" href="/assets/jfr.html.10e316af.js"><link rel="prefetch" href="/assets/jvm.html.c7b9fd8f.js"><link rel="prefetch" href="/assets/keymap.html.97636b0c.js"><link rel="prefetch" href="/assets/logger.html.ab691e29.js"><link rel="prefetch" href="/assets/manual-install.html.a031e342.js"><link rel="prefetch" href="/assets/mbean.html.9062fe0b.js"><link rel="prefetch" href="/assets/mc.html.c72bf29a.js"><link rel="prefetch" href="/assets/memory.html.911264fb.js"><link rel="prefetch" href="/assets/monitor.html.b861dd2b.js"><link rel="prefetch" href="/assets/ognl.html.d4bc1bc8.js"><link rel="prefetch" href="/assets/options.html.9e19bd7d.js"><link rel="prefetch" href="/assets/perfcounter.html.e3509839.js"><link rel="prefetch" href="/assets/profiler.html.9a5939c8.js"><link rel="prefetch" href="/assets/pwd.html.8c00c7c7.js"><link rel="prefetch" href="/assets/quick-start.html.17597d6b.js"><link rel="prefetch" href="/assets/quit.html.f2004fd3.js"><link rel="prefetch" href="/assets/redefine.html.8f763ba4.js"><link rel="prefetch" href="/assets/release-notes.html.ceca27da.js"><link rel="prefetch" href="/assets/reset.html.531c57ec.js"><link rel="prefetch" href="/assets/retransform.html.883cb847.js"><link rel="prefetch" href="/assets/save-log.html.10fd1804.js"><link rel="prefetch" href="/assets/sc.html.e5ed7927.js"><link rel="prefetch" href="/assets/session.html.792ab981.js"><link rel="prefetch" href="/assets/sm.html.b6c4fc05.js"><link rel="prefetch" href="/assets/spring-boot-starter.html.4487a31e.js"><link rel="prefetch" href="/assets/stack.html.b1dc93b3.js"><link rel="prefetch" href="/assets/start-arthas.html.0c0dcba7.js"><link rel="prefetch" href="/assets/stop.html.b94ef499.js"><link rel="prefetch" href="/assets/sysenv.html.dd2920eb.js"><link rel="prefetch" href="/assets/sysprop.html.9ee76be9.js"><link rel="prefetch" href="/assets/tee.html.690e39e8.js"><link rel="prefetch" href="/assets/thread.html.989bc148.js"><link rel="prefetch" href="/assets/trace.html.272a5864.js"><link rel="prefetch" href="/assets/tt.html.5ad78537.js"><link rel="prefetch" href="/assets/tunnel.html.59bde372.js"><link rel="prefetch" href="/assets/version.html.1fb9c5ad.js"><link rel="prefetch" href="/assets/vmoption.html.4f720b39.js"><link rel="prefetch" href="/assets/vmtool.html.a6a8ee75.js"><link rel="prefetch" href="/assets/watch.html.06497348.js"><link rel="prefetch" href="/assets/web-console.html.1d818a20.js"><link rel="prefetch" href="/assets/intro.html.0082fd51.js"><link rel="prefetch" href="/assets/user-question-history11440.html.fb0525c1.js"><link rel="prefetch" href="/assets/user-question-history11442.html.e0a55c65.js"><link rel="prefetch" href="/assets/user-question-history11443.html.d1528876.js"><link rel="prefetch" href="/assets/user-question-history11444.html.e2b6bc77.js"><link rel="prefetch" href="/assets/user-question-history11450.html.2b09f6c7.js"><link rel="prefetch" href="/assets/user-question-history11451.html.c76df7ae.js"><link rel="prefetch" href="/assets/user-question-history11452.html.9879b76b.js"><link rel="prefetch" href="/assets/user-question-history11453.html.2e92595b.js"><link rel="prefetch" href="/assets/user-question-history11454.html.f568c6c3.js"><link rel="prefetch" href="/assets/user-question-history11466.html.3fc8a828.js"><link rel="prefetch" href="/assets/user-question-history11467.html.bb6b861a.js"><link rel="prefetch" href="/assets/user-question-history11468.html.46029e3a.js"><link rel="prefetch" href="/assets/user-question-history11469.html.ab94d023.js"><link rel="prefetch" href="/assets/user-question-history11784.html.a62744ce.js"><link rel="prefetch" href="/assets/user-question-history11795.html.a7d68a33.js"><link rel="prefetch" href="/assets/user-question-history11809.html.f163cb5f.js"><link rel="prefetch" href="/assets/user-question-history11810.html.38c867bc.js"><link rel="prefetch" href="/assets/user-question-history11814.html.225c060b.js"><link rel="prefetch" href="/assets/user-question-history12453.html.36bebf20.js"><link rel="prefetch" href="/assets/user-question-history12454.html.3ee1574c.js"><link rel="prefetch" href="/assets/user-question-history12455.html.4d2487f7.js"><link rel="prefetch" href="/assets/user-question-history12706.html.5d0d9e70.js"><link rel="prefetch" href="/assets/user-question-history12715.html.fe834021.js"><link rel="prefetch" href="/assets/user-question-history12716.html.86dedfd1.js"><link rel="prefetch" href="/assets/user-question-history12740.html.58af5398.js"><link rel="prefetch" href="/assets/user-question-history12741.html.d9c4d211.js"><link rel="prefetch" href="/assets/user-question-history13448.html.8cc59a67.js"><link rel="prefetch" href="/assets/user-question-history13504.html.b57725ff.js"><link rel="prefetch" href="/assets/user-question-history13506.html.0039dbf9.js"><link rel="prefetch" href="/assets/user-question-history13507.html.2c3580b6.js"><link rel="prefetch" href="/assets/user-question-history13508.html.611f806a.js"><link rel="prefetch" href="/assets/user-question-history13509.html.25c5b6f6.js"><link rel="prefetch" href="/assets/user-question-history13510.html.cc949a92.js"><link rel="prefetch" href="/assets/user-question-history13511.html.6a3406dd.js"><link rel="prefetch" href="/assets/user-question-history13512.html.b13b9408.js"><link rel="prefetch" href="/assets/user-question-history13513.html.db786eb4.js"><link rel="prefetch" href="/assets/user-question-history13522.html.d86e15d9.js"><link rel="prefetch" href="/assets/user-question-history14763.html.e50d35b1.js"><link rel="prefetch" href="/assets/user-question-history14831.html.5aaf9c3b.js"><link rel="prefetch" href="/assets/user-question-history14832.html.851282a7.js"><link rel="prefetch" href="/assets/user-question-history14833.html.37da3c74.js"><link rel="prefetch" href="/assets/user-question-history14834.html.f09d5dea.js"><link rel="prefetch" href="/assets/user-question-history14840.html.e8ff334a.js"><link rel="prefetch" href="/assets/user-question-history14843.html.77cae64b.js"><link rel="prefetch" href="/assets/user-question-history15167.html.281cc072.js"><link rel="prefetch" href="/assets/user-question-history15543.html.0cbc55e8.js"><link rel="prefetch" href="/assets/user-question-history15726.html.40b6ceb9.js"><link rel="prefetch" href="/assets/user-question-history15728.html.5cfa5a28.js"><link rel="prefetch" href="/assets/user-question-history15729.html.ec291ed8.js"><link rel="prefetch" href="/assets/user-question-history15730.html.4bca5864.js"><link rel="prefetch" href="/assets/user-question-history15731.html.a3a956ae.js"><link rel="prefetch" href="/assets/user-question-history15735.html.7ea6b4e5.js"><link rel="prefetch" href="/assets/user-question-history15736.html.88204631.js"><link rel="prefetch" href="/assets/user-question-history15737.html.2c7d5321.js"><link rel="prefetch" href="/assets/user-question-history15738.html.1ec98456.js"><link rel="prefetch" href="/assets/user-question-history15739.html.2ab5138c.js"><link rel="prefetch" href="/assets/user-question-history15740.html.b1ca6209.js"><link rel="prefetch" href="/assets/404.html.49fbe4f8.js">
<link rel="stylesheet" href="/assets/style.cf0d4c26.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="/" class="" data-v-a8869d06><!----><span class="site-name can-hide" data-v-a8869d06>arthas</span><span class="navbar-version" data-v-a8869d06>v4.0.4</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/" class="" aria-label="首页"><!--[--><!--]--> 首页 <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="/doc/arthas-tutorials.html?language=cn&amp;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="/doc/" class="router-link-active" aria-label="文档"><!--[--><!--]--> 文档 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/commands.md" class="" aria-label="命令列表"><!--[--><!--]--> 命令列表 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/download.md" class="" aria-label="下载"><!--[--><!--]--> 下载 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/expert/intro.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/3.x/" rel="noopener noreferrer" target="_blank" aria-label="v3.x"><!--[--><!--]--><span>v3.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="/doc/trace.html" class="router-link-active router-link-exact-active router-link-active" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/en/doc/trace.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="/" class="" aria-label="首页"><!--[--><!--]--> 首页 <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="/doc/arthas-tutorials.html?language=cn&amp;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="/doc/" class="router-link-active" aria-label="文档"><!--[--><!--]--> 文档 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/commands.md" class="" aria-label="命令列表"><!--[--><!--]--> 命令列表 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/download.md" class="" aria-label="下载"><!--[--><!--]--> 下载 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/doc/expert/intro.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/3.x/" rel="noopener noreferrer" target="_blank" aria-label="v3.x"><!--[--><!--]--><span>v3.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="/doc/trace.html" class="router-link-active router-link-exact-active router-link-active" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/en/doc/trace.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="/doc/" class="router-link-active sidebar-item" aria-label="简介"><!--[--><!--]--> 简介 <!--[--><!--]--></a><!----></li><li><a href="/doc/quick-start.html" class="sidebar-item" aria-label="快速入门"><!--[--><!--]--> 快速入门 <!--[--><!--]--></a><!----></li><li><a href="/doc/install-detail.html" class="sidebar-item" aria-label="Arthas Install"><!--[--><!--]--> Arthas Install <!--[--><!--]--></a><!----></li><li><a href="/doc/download.html" class="sidebar-item" aria-label="下载"><!--[--><!--]--> 下载 <!--[--><!--]--></a><!----></li><li><a href="/doc/advice-class.html" class="sidebar-item" aria-label="表达式核心变量"><!--[--><!--]--> 表达式核心变量 <!--[--><!--]--></a><!----></li><li><a href="/doc/commands.md" class="sidebar-item active collapsible" aria-label="命令列表"><!--[--><!--]--> 命令列表 <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a href="/doc/auth.html" class="sidebar-item" aria-label="auth"><!--[--><!--]--> auth <!--[--><!--]--></a><!----></li><li><a href="/doc/base64.html" class="sidebar-item" aria-label="base64"><!--[--><!--]--> base64 <!--[--><!--]--></a><!----></li><li><a href="/doc/cat.html" class="sidebar-item" aria-label="cat"><!--[--><!--]--> cat <!--[--><!--]--></a><!----></li><li><a href="/doc/classloader.html" class="sidebar-item" aria-label="classloader"><!--[--><!--]--> classloader <!--[--><!--]--></a><!----></li><li><a href="/doc/cls.html" class="sidebar-item" aria-label="cls"><!--[--><!--]--> cls <!--[--><!--]--></a><!----></li><li><a href="/doc/dashboard.html" class="sidebar-item" aria-label="dashboard"><!--[--><!--]--> dashboard <!--[--><!--]--></a><!----></li><li><a href="/doc/dump.html" class="sidebar-item" aria-label="dump"><!--[--><!--]--> dump <!--[--><!--]--></a><!----></li><li><a href="/doc/echo.html" class="sidebar-item" aria-label="echo"><!--[--><!--]--> echo <!--[--><!--]--></a><!----></li><li><a href="/doc/getstatic.html" class="sidebar-item" aria-label="getstatic"><!--[--><!--]--> getstatic <!--[--><!--]--></a><!----></li><li><a href="/doc/grep.html" class="sidebar-item" aria-label="grep"><!--[--><!--]--> grep <!--[--><!--]--></a><!----></li><li><a href="/doc/heapdump.html" class="sidebar-item" aria-label="heapdump"><!--[--><!--]--> heapdump <!--[--><!--]--></a><!----></li><li><a href="/doc/help.html" class="sidebar-item" aria-label="help"><!--[--><!--]--> help <!--[--><!--]--></a><!----></li><li><a href="/doc/history.html" class="sidebar-item" aria-label="history"><!--[--><!--]--> history <!--[--><!--]--></a><!----></li><li><a href="/doc/jad.html" class="sidebar-item" aria-label="jad"><!--[--><!--]--> jad <!--[--><!--]--></a><!----></li><li><a href="/doc/jfr.html" class="sidebar-item" aria-label="jfr"><!--[--><!--]--> jfr <!--[--><!--]--></a><!----></li><li><a href="/doc/jvm.html" class="sidebar-item" aria-label="jvm"><!--[--><!--]--> jvm <!--[--><!--]--></a><!----></li><li><a href="/doc/keymap.html" class="sidebar-item" aria-label="keymap"><!--[--><!--]--> keymap <!--[--><!--]--></a><!----></li><li><a href="/doc/logger.html" class="sidebar-item" aria-label="logger"><!--[--><!--]--> logger <!--[--><!--]--></a><!----></li><li><a href="/doc/mbean.html" class="sidebar-item" aria-label="mbean"><!--[--><!--]--> mbean <!--[--><!--]--></a><!----></li><li><a href="/doc/mc.html" class="sidebar-item" aria-label="mc"><!--[--><!--]--> mc <!--[--><!--]--></a><!----></li><li><a href="/doc/memory.html" class="sidebar-item" aria-label="memory"><!--[--><!--]--> memory <!--[--><!--]--></a><!----></li><li><a href="/doc/monitor.html" class="sidebar-item" aria-label="monitor"><!--[--><!--]--> monitor <!--[--><!--]--></a><!----></li><li><a href="/doc/ognl.html" class="sidebar-item" aria-label="ognl"><!--[--><!--]--> ognl <!--[--><!--]--></a><!----></li><li><a href="/doc/options.html" class="sidebar-item" aria-label="options"><!--[--><!--]--> options <!--[--><!--]--></a><!----></li><li><a href="/doc/perfcounter.html" class="sidebar-item" aria-label="perfcounter"><!--[--><!--]--> perfcounter <!--[--><!--]--></a><!----></li><li><a href="/doc/profiler.html" class="sidebar-item" aria-label="profiler"><!--[--><!--]--> profiler <!--[--><!--]--></a><!----></li><li><a href="/doc/pwd.html" class="sidebar-item" aria-label="pwd"><!--[--><!--]--> pwd <!--[--><!--]--></a><!----></li><li><a href="/doc/quit.html" class="sidebar-item" aria-label="quit"><!--[--><!--]--> quit <!--[--><!--]--></a><!----></li><li><a href="/doc/redefine.html" class="sidebar-item" aria-label="redefine"><!--[--><!--]--> redefine <!--[--><!--]--></a><!----></li><li><a href="/doc/reset.html" class="sidebar-item" aria-label="reset"><!--[--><!--]--> reset <!--[--><!--]--></a><!----></li><li><a href="/doc/retransform.html" class="sidebar-item" aria-label="retransform"><!--[--><!--]--> retransform <!--[--><!--]--></a><!----></li><li><a href="/doc/sc.html" class="sidebar-item" aria-label="sc"><!--[--><!--]--> sc <!--[--><!--]--></a><!----></li><li><a href="/doc/session.html" class="sidebar-item" aria-label="session"><!--[--><!--]--> session <!--[--><!--]--></a><!----></li><li><a href="/doc/sm.html" class="sidebar-item" aria-label="sm"><!--[--><!--]--> sm <!--[--><!--]--></a><!----></li><li><a href="/doc/stack.html" class="sidebar-item" aria-label="stack"><!--[--><!--]--> stack <!--[--><!--]--></a><!----></li><li><a href="/doc/stop.html" class="sidebar-item" aria-label="stop"><!--[--><!--]--> stop <!--[--><!--]--></a><!----></li><li><a href="/doc/sysenv.html" class="sidebar-item" aria-label="sysenv"><!--[--><!--]--> sysenv <!--[--><!--]--></a><!----></li><li><a href="/doc/sysprop.html" class="sidebar-item" aria-label="sysprop"><!--[--><!--]--> sysprop <!--[--><!--]--></a><!----></li><li><a href="/doc/tee.html" class="sidebar-item" aria-label="tee"><!--[--><!--]--> tee <!--[--><!--]--></a><!----></li><li><a href="/doc/thread.html" class="sidebar-item" aria-label="thread"><!--[--><!--]--> thread <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/doc/trace.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="trace"><!--[--><!--]--> trace <!--[--><!--]--></a><!----></li><li><a href="/doc/tt.html" class="sidebar-item" aria-label="tt"><!--[--><!--]--> tt <!--[--><!--]--></a><!----></li><li><a href="/doc/version.html" class="sidebar-item" aria-label="version"><!--[--><!--]--> version <!--[--><!--]--></a><!----></li><li><a href="/doc/vmoption.html" class="sidebar-item" aria-label="vmoption"><!--[--><!--]--> vmoption <!--[--><!--]--></a><!----></li><li><a href="/doc/vmtool.html" class="sidebar-item" aria-label="vmtool"><!--[--><!--]--> vmtool <!--[--><!--]--></a><!----></li><li><a href="/doc/watch.html" class="sidebar-item" aria-label="watch"><!--[--><!--]--> watch <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a href="/doc/advanced-use.md" class="sidebar-item collapsible" aria-label="其他特性"><!--[--><!--]--> 其他特性 <!--[--><!--]--></a><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/doc/async.html" class="sidebar-item" aria-label="Arthas 后台异步任务"><!--[--><!--]--> Arthas 后台异步任务 <!--[--><!--]--></a><!----></li><li><a href="/doc/save-log.html" class="sidebar-item" aria-label="执行结果存日志"><!--[--><!--]--> 执行结果存日志 <!--[--><!--]--></a><!----></li><li><a href="/doc/docker.html" class="sidebar-item" aria-label="Docker"><!--[--><!--]--> Docker <!--[--><!--]--></a><!----></li><li><a href="/doc/web-console.html" class="sidebar-item" aria-label="Web Console"><!--[--><!--]--> Web Console <!--[--><!--]--></a><!----></li><li><a href="/doc/tunnel.html" class="sidebar-item" aria-label="Arthas Tunnel"><!--[--><!--]--> Arthas Tunnel <!--[--><!--]--></a><!----></li><li><a href="/doc/idea-plugin.html" class="sidebar-item" aria-label="IDEA Plugin"><!--[--><!--]--> IDEA Plugin <!--[--><!--]--></a><!----></li><li><a href="/doc/arthas-properties.html" class="sidebar-item" aria-label="Arthas Properties"><!--[--><!--]--> Arthas Properties <!--[--><!--]--></a><!----></li><li><a href="/doc/agent.html" class="sidebar-item" aria-label="以 Java Agent 的方式启动"><!--[--><!--]--> 以 Java Agent 的方式启动 <!--[--><!--]--></a><!----></li><li><a href="/doc/spring-boot-starter.html" class="sidebar-item" aria-label="Arthas Spring Boot Starter"><!--[--><!--]--> Arthas Spring Boot Starter <!--[--><!--]--></a><!----></li><li><a href="/doc/http-api.html" class="sidebar-item" aria-label="Http API"><!--[--><!--]--> Http API <!--[--><!--]--></a><!----></li><li><a href="/doc/batch-support.html" class="sidebar-item" aria-label="批处理功能"><!--[--><!--]--> 批处理功能 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a href="/doc/faq.html" class="sidebar-item" aria-label="FAQ"><!--[--><!--]--> FAQ <!--[--><!--]--></a><!----></li><li><p tabindex="0" class="sidebar-item collapsible">专家答疑 <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/doc/expert/intro.html" class="sidebar-item" aria-label="无疑 专家智能答疑 介绍"><!--[--><!--]--> 无疑 专家智能答疑 介绍 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11466.html" class="sidebar-item" aria-label="arthas 有没有在线教程?"><!--[--><!--]--> arthas 有没有在线教程? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12454.html" class="sidebar-item" aria-label="arthas 怎么查看内存情况?"><!--[--><!--]--> arthas 怎么查看内存情况? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13507.html" class="sidebar-item" aria-label="arthas查看内存占用大的地方"><!--[--><!--]--> arthas查看内存占用大的地方 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14832.html" class="sidebar-item" aria-label="arthas启动时内存溢出"><!--[--><!--]--> arthas启动时内存溢出 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15730.html" class="sidebar-item" aria-label="arthas 观察方法中的某个变量的值"><!--[--><!--]--> arthas 观察方法中的某个变量的值 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11440.html" class="sidebar-item" aria-label="arthas 怎么使用?"><!--[--><!--]--> arthas 怎么使用? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11467.html" class="sidebar-item" aria-label="arthas 在线教程在哪?"><!--[--><!--]--> arthas 在线教程在哪? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12455.html" class="sidebar-item" aria-label="arthas 排查内存泄露的具体方法"><!--[--><!--]--> arthas 排查内存泄露的具体方法 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13508.html" class="sidebar-item" aria-label="arthas 如何查看内存使用情况"><!--[--><!--]--> arthas 如何查看内存使用情况 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14833.html" class="sidebar-item" aria-label="Start arthas failed, exception stack trace:com.sun.tools.attach"><!--[--><!--]--> Start arthas failed, exception stack trace:com.sun.tools.attach <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15731.html" class="sidebar-item" aria-label="arthas 过滤方法的阐述"><!--[--><!--]--> arthas 过滤方法的阐述 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11442.html" class="sidebar-item" aria-label="arthas 介绍一下"><!--[--><!--]--> arthas 介绍一下 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11468.html" class="sidebar-item" aria-label="arthas 怎么使用?"><!--[--><!--]--> arthas 怎么使用? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12706.html" class="sidebar-item" aria-label="arthas 火焰图 怎么看?"><!--[--><!--]--> arthas 火焰图 怎么看? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13509.html" class="sidebar-item" aria-label="通过arthas怎样排查项目中哪个对象泄露了或者占用内存太大"><!--[--><!--]--> 通过arthas怎样排查项目中哪个对象泄露了或者占用内存太大 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14834.html" class="sidebar-item" aria-label="使用arthas 跟踪进程服务后,进程所占用的文件描述符陡增,且文件描述符不下降"><!--[--><!--]--> 使用arthas 跟踪进程服务后,进程所占用的文件描述符陡增,且文件描述符不下降 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15735.html" class="sidebar-item" aria-label="arthas报错connect to telnet server error: 127.0.0.1 9999"><!--[--><!--]--> arthas报错connect to telnet server error: 127.0.0.1 9999 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11443.html" class="sidebar-item" aria-label="arthas 下载和安装"><!--[--><!--]--> arthas 下载和安装 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11469.html" class="sidebar-item" aria-label="linux的arthas使用教程"><!--[--><!--]--> linux的arthas使用教程 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12715.html" class="sidebar-item" aria-label="java 如何用arthas 查看 内存 情况?"><!--[--><!--]--> java 如何用arthas 查看 内存 情况? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13510.html" class="sidebar-item" aria-label="查看实时jvm内存大小"><!--[--><!--]--> 查看实时jvm内存大小 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14840.html" class="sidebar-item" aria-label="Unsupported class file major version 61 using arthas 3.6.3"><!--[--><!--]--> Unsupported class file major version 61 using arthas 3.6.3 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15736.html" class="sidebar-item" aria-label="arthas 中jad参数"><!--[--><!--]--> arthas 中jad参数 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11444.html" class="sidebar-item" aria-label="arthas 命令解释"><!--[--><!--]--> arthas 命令解释 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11784.html" class="sidebar-item" aria-label="arthas使用的各类方式有哪些"><!--[--><!--]--> arthas使用的各类方式有哪些 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12716.html" class="sidebar-item" aria-label="arthas 怎么查看堆内存太高"><!--[--><!--]--> arthas 怎么查看堆内存太高 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13511.html" class="sidebar-item" aria-label="arthas方法运行后查看成员变量"><!--[--><!--]--> arthas方法运行后查看成员变量 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14843.html" class="sidebar-item" aria-label="arthas 支持jdk 20么"><!--[--><!--]--> arthas 支持jdk 20么 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15737.html" class="sidebar-item" aria-label="进程停了 arthas也会同步停止么"><!--[--><!--]--> 进程停了 arthas也会同步停止么 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11450.html" class="sidebar-item" aria-label="arthas 分析thread线程卡住"><!--[--><!--]--> arthas 分析thread线程卡住 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11795.html" class="sidebar-item" aria-label="使用arthas查看成员变量值具体怎么做"><!--[--><!--]--> 使用arthas查看成员变量值具体怎么做 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12740.html" class="sidebar-item" aria-label="arthas怎么分析cpu很高"><!--[--><!--]--> arthas怎么分析cpu很高 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13512.html" class="sidebar-item" aria-label="如何查看java内存增长哪些对象"><!--[--><!--]--> 如何查看java内存增长哪些对象 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15167.html" class="sidebar-item" aria-label="介绍一下arthas"><!--[--><!--]--> 介绍一下arthas <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15738.html" class="sidebar-item" aria-label="arthas如何查看hashmap的值"><!--[--><!--]--> arthas如何查看hashmap的值 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11451.html" class="sidebar-item" aria-label="arthas 怎么排查cpu占用过高"><!--[--><!--]--> arthas 怎么排查cpu占用过高 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11809.html" class="sidebar-item" aria-label="linux下的arthas 具体怎么用?(使用教程)"><!--[--><!--]--> linux下的arthas 具体怎么用?(使用教程) <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12741.html" class="sidebar-item" aria-label="如何使用arthas查看系统哪个地方内存占用过大"><!--[--><!--]--> 如何使用arthas查看系统哪个地方内存占用过大 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13513.html" class="sidebar-item" aria-label="arthas 监听成员变量值的方法是什么?"><!--[--><!--]--> arthas 监听成员变量值的方法是什么? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15543.html" class="sidebar-item" aria-label="arthas中tt命令如何查看方法入参的具体命令"><!--[--><!--]--> arthas中tt命令如何查看方法入参的具体命令 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15739.html" class="sidebar-item" aria-label="arthas可以监听私有方法吗"><!--[--><!--]--> arthas可以监听私有方法吗 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11452.html" class="sidebar-item" aria-label="arthas 查看方法耗时"><!--[--><!--]--> arthas 查看方法耗时 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11810.html" class="sidebar-item" aria-label="arthas查看方法耗时"><!--[--><!--]--> arthas查看方法耗时 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13448.html" class="sidebar-item" aria-label="如何使用arthas分析慢查询"><!--[--><!--]--> 如何使用arthas分析慢查询 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13522.html" class="sidebar-item" aria-label="Connect to telnet server error: 127.0.0.1 3658"><!--[--><!--]--> Connect to telnet server error: 127.0.0.1 3658 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15726.html" class="sidebar-item" aria-label="arthas 如何查询static变量"><!--[--><!--]--> arthas 如何查询static变量 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15740.html" class="sidebar-item" aria-label="arthas 分析内存升高的方法"><!--[--><!--]--> arthas 分析内存升高的方法 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11453.html" class="sidebar-item" aria-label="arthas 怎样查看方法耗时"><!--[--><!--]--> arthas 怎样查看方法耗时 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11814.html" class="sidebar-item" aria-label="arthas 怎么排查内存泄漏"><!--[--><!--]--> arthas 怎么排查内存泄漏 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13504.html" class="sidebar-item" aria-label="如何查看实时jvm内存大小占用"><!--[--><!--]--> 如何查看实时jvm内存大小占用 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14763.html" class="sidebar-item" aria-label="利用Arthas排查NoSuchMethodError"><!--[--><!--]--> 利用Arthas排查NoSuchMethodError <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15728.html" class="sidebar-item" aria-label="arthas 获取成员变量"><!--[--><!--]--> arthas 获取成员变量 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history11454.html" class="sidebar-item" aria-label="arthas 常用命令介绍"><!--[--><!--]--> arthas 常用命令介绍 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history12453.html" class="sidebar-item" aria-label="arthas 怎么查看内存情况?"><!--[--><!--]--> arthas 怎么查看内存情况? <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history13506.html" class="sidebar-item" aria-label="如何查看java内存增长哪些对象"><!--[--><!--]--> 如何查看java内存增长哪些对象 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history14831.html" class="sidebar-item" aria-label="Dashboard 命令cpuUsage长期在90%左右"><!--[--><!--]--> Dashboard 命令cpuUsage长期在90%左右 <!--[--><!--]--></a><!----></li><li><a href="/doc/expert/user-question-history15729.html" class="sidebar-item" aria-label="arthas 怎么查看变量内容"><!--[--><!--]--> arthas 怎么查看变量内容 <!--[--><!--]--></a><!----></li><!--]--></ul></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="/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="trace" tabindex="-1"><a class="header-anchor" href="#trace" aria-hidden="true">#</a> trace</h1><p><a href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&amp;id=command-trace" target="_blank" rel="noopener noreferrer"><code>trace</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>trace</code> 命令能主动搜索 <code>class-pattern</code><code>method-pattern</code> 对应的方法调用路径,渲染和统计整个调用链路上的所有性能开销和追踪调用链路。</p><h2 id="参数说明" tabindex="-1"><a class="header-anchor" href="#参数说明" aria-hidden="true">#</a> 参数说明</h2><table><thead><tr><th style="text-align:right;">参数名称</th><th style="text-align:left;">参数说明</th></tr></thead><tbody><tr><td style="text-align:right;"><em>class-pattern</em></td><td style="text-align:left;">类名表达式匹配</td></tr><tr><td style="text-align:right;"><em>method-pattern</em></td><td style="text-align:left;">方法名表达式匹配</td></tr><tr><td style="text-align:right;"><em>condition-express</em></td><td style="text-align:left;">条件表达式</td></tr><tr><td style="text-align:right;">[E]</td><td style="text-align:left;">开启正则表达式匹配,默认为通配符匹配</td></tr><tr><td style="text-align:right;"><code>[n:]</code></td><td style="text-align:left;">命令执行次数,默认值为 100。</td></tr><tr><td style="text-align:right;"><code>#cost</code></td><td style="text-align:left;">方法执行耗时</td></tr><tr><td style="text-align:right;"><code>[m &lt;arg&gt;]</code></td><td style="text-align:left;">指定 Class 最大匹配数量,默认值为 50。长格式为<code>[maxMatch &lt;arg&gt;]</code></td></tr></tbody></table><p>这里重点要说明的是<code>条件表达式</code><code>条件表达式</code>的构成主要由 ognl 表达式组成,所以你可以这样写<code>&quot;params[0]&lt;0&quot;</code>,只要是一个合法的 ognl 表达式,都能被正常支持。</p><p>请参考<a href="/doc/advice-class.html" class="">表达式核心变量</a>中关于该节点的描述。</p><ul><li>特殊用法请参考:<a href="https://github.com/alibaba/arthas/issues/71" target="_blank" rel="noopener noreferrer">https://github.com/alibaba/arthas/issues/71<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>OGNL 表达式官网:<a href="https://commons.apache.org/dormant/commons-ognl/language-guide.html" target="_blank" rel="noopener noreferrer">https://commons.apache.org/dormant/commons-ognl/language-guide.html<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><p>很多时候我们只想看到某个方法的 rt 大于某个时间之后的 trace 结果,现在 Arthas 可以按照方法执行的耗时来进行过滤了,例如<code>trace *StringUtils isBlank &#39;#cost&gt;100&#39;</code>表示当执行时间超过 100ms 的时候,才会输出 trace 的结果。</p><div class="custom-container tip"><p class="custom-container-title">提示</p><p>watch/stack/trace 这个三个命令都支持<code>#cost</code></p></div><h2 id="注意事项" tabindex="-1"><a class="header-anchor" href="#注意事项" aria-hidden="true">#</a> 注意事项</h2><ul><li><p><code>trace</code> 能方便的帮助你定位和发现因 RT 高而导致的性能问题缺陷,但其每次只能跟踪一级方法的调用链路。</p><p>参考:<a href="https://github.com/alibaba/arthas/issues/597" target="_blank" rel="noopener noreferrer">Trace 命令的实现原理<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></li><li><p>3.3.0 版本后,可以使用动态 Trace 功能,不断增加新的匹配类,参考下面的示例。</p></li><li><p>目前不支持 <code>trace java.lang.Thread getName</code>,参考 issue: <a href="https://github.com/alibaba/arthas/issues/1610" target="_blank" rel="noopener noreferrer">#1610<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></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="/doc/quick-start.html" class="">快速入门</a>里的<code>math-game</code></p><h3 id="trace-函数" tabindex="-1"><a class="header-anchor" href="#trace-函数" aria-hidden="true">#</a> trace 函数</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace demo.MathGame run
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class-cnt:1 , method-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">28</span> ms.
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:45:08<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@3d4eac69
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.617465ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.078946ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
<span class="token variable">`</span></span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:45:09<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher<span class="token variable">$AppClassLoader</span>@3d4eac69
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">1</span>.276874ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.03752ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="custom-container tip"><p class="custom-container-title">提示</p><p>结果里的 <code>#24</code>,表示在 run 函数里,在源文件的第<code>24</code>行调用了<code>primeFactors()</code>函数。</p></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>$ trace demo.MathGame run <span class="token parameter variable">-m</span> <span class="token number">1</span>
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">412</span> ms, listenerId: <span class="token number">4</span>
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2022</span>-12-25 <span class="token number">21</span>:00:00<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@b4aac2
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.762093ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">30.21</span>% <span class="token number">0</span>.230241ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#46 [throws Exception]</span>
<span class="token variable">`</span></span>---ts<span class="token operator">=</span><span class="token number">2022</span>-12-25 <span class="token number">21</span>:00:10<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher<span class="token variable">$AppClassLoader</span>@b4aac2
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.315298ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">13.95</span>% <span class="token number">0</span>.043995ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#46 [throws Exception]</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="trace-次数限制" tabindex="-1"><a class="header-anchor" href="#trace-次数限制" aria-hidden="true">#</a> trace 次数限制</h3><p>如果方法调用的次数很多,那么可以用<code>-n</code>参数指定捕捉结果的次数。比如下面的例子里,捕捉到一次调用就退出命令。</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace demo.MathGame run <span class="token parameter variable">-n</span> <span class="token number">1</span>
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class-cnt:1 , method-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">20</span> ms.
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:45:53<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@3d4eac69
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.549379ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.059839ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24</span>
`---<span class="token punctuation">[</span><span class="token number">0</span>.232887ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#25</span>
Command execution <span class="token builtin class-name">times</span> exceed limit: <span class="token number">1</span>, so <span class="token builtin class-name">command</span> will exit. You can <span class="token builtin class-name">set</span> it with <span class="token parameter variable">-n</span> option.
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="包含-jdk-的函数" tabindex="-1"><a class="header-anchor" href="#包含-jdk-的函数" aria-hidden="true">#</a> 包含 jdk 的函数</h3><ul><li><code>--skipJDKMethod &lt;value&gt; </code> skip jdk method trace, default value true.</li></ul><p>默认情况下trace 不会包含 jdk 里的函数调用,如果希望 trace jdk 里的函数,需要显式设置<code>--skipJDKMethod false</code></p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace <span class="token parameter variable">--skipJDKMethod</span> <span class="token boolean">false</span> demo.MathGame run
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class-cnt:1 , method-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">60</span> ms.
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:44:41<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@3d4eac69
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">1</span>.357742ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.028624ms<span class="token punctuation">]</span> java.util.Random:nextInt<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#23</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.045534ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.005372ms<span class="token punctuation">]</span> java.lang.StringBuilder:<span class="token operator">&lt;</span>init<span class="token operator">&gt;</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.012257ms<span class="token punctuation">]</span> java.lang.Integer:valueOf<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.234537ms<span class="token punctuation">]</span> java.lang.String:format<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span>min<span class="token operator">=</span><span class="token number">0</span>.004539ms,max<span class="token operator">=</span><span class="token number">0</span>.005778ms,total<span class="token operator">=</span><span class="token number">0</span>.010317ms,count<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">]</span> java.lang.StringBuilder:append<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.013777ms<span class="token punctuation">]</span> java.lang.Exception:getMessage<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.004935ms<span class="token punctuation">]</span> java.lang.StringBuilder:toString<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.06941ms<span class="token punctuation">]</span> java.io.PrintStream:println<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
<span class="token variable">`</span></span>---ts<span class="token operator">=</span><span class="token number">2019</span>-12-04 00:44:42<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher<span class="token variable">$AppClassLoader</span>@3d4eac69
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">3</span>.030432ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.010473ms<span class="token punctuation">]</span> java.util.Random:nextInt<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#23</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.023715ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.005198ms<span class="token punctuation">]</span> java.lang.StringBuilder:<span class="token operator">&lt;</span>init<span class="token operator">&gt;</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.006405ms<span class="token punctuation">]</span> java.lang.Integer:valueOf<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.178583ms<span class="token punctuation">]</span> java.lang.String:format<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span>min<span class="token operator">=</span><span class="token number">0</span>.011636ms,max<span class="token operator">=</span><span class="token number">0</span>.838077ms,total<span class="token operator">=</span><span class="token number">0</span>.849713ms,count<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">]</span> java.lang.StringBuilder:append<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.008747ms<span class="token punctuation">]</span> java.lang.Exception:getMessage<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.019768ms<span class="token punctuation">]</span> java.lang.StringBuilder:toString<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.076457ms<span class="token punctuation">]</span> java.io.PrintStream:println<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="根据调用耗时过滤" tabindex="-1"><a class="header-anchor" href="#根据调用耗时过滤" aria-hidden="true">#</a> 根据调用耗时过滤</h3><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace demo.MathGame run <span class="token string">&#39;#cost &gt; 10&#39;</span>
Press Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class-cnt:1 , method-cnt:1<span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">41</span> ms.
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2018</span>-12-04 01:12:02<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@3d4eac69
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">12</span>.033735ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.006783ms<span class="token punctuation">]</span> java.util.Random:nextInt<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">11</span>.852594ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span>
`---<span class="token punctuation">[</span><span class="token number">0</span>.05447ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="custom-container tip"><p class="custom-container-title">提示</p><p>只会展示耗时大于 10ms 的调用路径,有助于在排查问题的时候,只关注异常情况</p></div><ul><li>是不是很眼熟,没错,在 JProfiler 等收费软件中你曾经见识类似的功能,这里你将可以通过命令就能打印出指定调用路径。 友情提醒下,<code>trace</code> 在执行的过程中本身是会有一定的性能开销,在统计的报告中并未像 JProfiler 一样预先减去其自身的统计开销。所以这统计出来有些许的不准,渲染路径上调用的类、方法越多,性能偏差越大。但还是能让你看清一些事情的。</li><li>[12.033735ms] 的含义,<code>12.033735</code> 的含义是:当前节点在当前步骤的耗时,单位为毫秒</li><li>[0,0,0ms,11]xxx:yyy() [throws Exception],对该方法中相同的方法调用进行了合并,<code>0,0,0ms,11</code> 表示方法调用耗时,<code>min,max,total,count</code><code>throws Exception</code> 表明该方法调用中存在异常返回</li><li>这里存在一个统计不准确的问题,就是所有方法耗时加起来可能会小于该监测方法的总耗时,这个是由于 Arthas 本身的逻辑会有一定的耗时</li></ul><h3 id="trace-多个类或者多个函数" tabindex="-1"><a class="header-anchor" href="#trace-多个类或者多个函数" aria-hidden="true">#</a> trace 多个类或者多个函数</h3><p>trace 命令只会 trace 匹配到的函数里的子调用,并不会向下 trace 多层。因为 trace 是代价比较贵的,多层 trace 可能会导致最终要 trace 的类和函数非常多。</p><p>可以用正则表匹配路径上的多个类和函数,一定程度上达到多层 trace 的效果。</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>trace <span class="token parameter variable">-E</span> com.test.ClassA<span class="token operator">|</span>org.test.ClassB method1<span class="token operator">|</span>method2<span class="token operator">|</span>method3
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="排除掉指定的类" tabindex="-1"><a class="header-anchor" href="#排除掉指定的类" aria-hidden="true">#</a> 排除掉指定的类</h3><p>使用 <code>--exclude-class-pattern</code> 参数可以排除掉指定的类,比如:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>trace javax.servlet.Filter * --exclude-class-pattern com.demo.TestFilter
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h2 id="动态-trace" tabindex="-1"><a class="header-anchor" href="#动态-trace" aria-hidden="true">#</a> 动态 trace</h2><div class="custom-container tip"><p class="custom-container-title">提示</p><p>3.3.0 版本后支持。</p></div><p>打开终端 1trace 上面 demo 里的<code>run</code>函数,可以看到打印出 <code>listenerId: 1</code></p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@59161<span class="token punctuation">]</span>$ trace demo.MathGame run
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">112</span> ms, listenerId: <span class="token number">1</span>
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2020</span>-07-09 <span class="token number">16</span>:48:11<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@3d4eac69
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">1</span>.389634ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.123934ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
<span class="token variable">`</span></span>---ts<span class="token operator">=</span><span class="token number">2020</span>-07-09 <span class="token number">16</span>:48:12<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher<span class="token variable">$AppClassLoader</span>@3d4eac69
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">3</span>.716391ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">3</span>.182813ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24</span>
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.167786ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#25</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>现在想要深入子函数<code>primeFactors</code>,可以打开一个新终端 2使用<code>telnet localhost 3658</code>连接上 arthas再 trace <code>primeFactors</code>时,指定<code>listenerId</code></p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token punctuation">[</span>arthas@59161<span class="token punctuation">]</span>$ trace demo.MathGame primeFactors <span class="token parameter variable">--listenerId</span> <span class="token number">1</span>
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">34</span> ms, listenerId: <span class="token number">1</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>这时终端 2 打印的结果,说明已经增强了一个函数:<code>Affect(class count: 1 , method count: 1)</code>,但不再打印更多的结果。</p><p>再查看终端 1可以发现 trace 的结果增加了一层,打印了<code>primeFactors</code>函数里的内容:</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code><span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2020</span>-07-09 <span class="token number">16</span>:49:29<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@3d4eac69
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.492551ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.113929ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.061462ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.001018ms<span class="token punctuation">]</span> throw:java.lang.IllegalArgumentException<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#46</span>
<span class="token variable">`</span></span>---ts<span class="token operator">=</span><span class="token number">2020</span>-07-09 <span class="token number">16</span>:49:30<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher<span class="token variable">$AppClassLoader</span>@3d4eac69
<span class="token variable"><span class="token variable">`</span>---<span class="token punctuation">[</span><span class="token number">0</span>.409446ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.232606ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24</span>
<span class="token operator">|</span> <span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.1294ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span>
`---<span class="token punctuation">[</span><span class="token number">0</span>.084025ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#25</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>通过指定<code>listenerId</code>的方式动态 trace可以不断深入。另外 <code>watch</code>/<code>tt</code>/<code>monitor</code>等命令也支持类似的功能。</p><h2 id="trace-结果时间不准确问题" tabindex="-1"><a class="header-anchor" href="#trace-结果时间不准确问题" aria-hidden="true">#</a> trace 结果时间不准确问题</h2><p>比如下面的结果里:<code>0.705196 &gt; (0.152743 + 0.145825)</code></p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace demo.MathGame run <span class="token parameter variable">-n</span> <span class="token number">1</span>
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">66</span> ms, listenerId: <span class="token number">1</span>
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2021</span>-02-08 <span class="token number">11</span>:27:36<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@232204a1
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.705196ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.152743ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24</span>
`---<span class="token punctuation">[</span><span class="token number">0</span>.145825ms<span class="token punctuation">]</span> demo.MathGame:print<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#25</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>那么其它的时间消耗在哪些地方?</p><ol><li><p>没有被 trace 到的函数。比如<code>java.*</code> 下的函数调用默认会忽略掉。通过增加<code>--skipJDKMethod false</code>参数可以打印出来。</p><div class="language-bash ext-sh line-numbers-mode"><pre class="language-bash"><code>$ trace demo.MathGame run <span class="token parameter variable">--skipJDKMethod</span> <span class="token boolean">false</span>
Press Q or Ctrl+C to abort.
Affect<span class="token punctuation">(</span>class count: <span class="token number">1</span> , method count: <span class="token number">1</span><span class="token punctuation">)</span> cost <span class="token keyword">in</span> <span class="token number">35</span> ms, listenerId: <span class="token number">2</span>
<span class="token variable"><span class="token variable">`</span>---ts<span class="token operator">=</span><span class="token number">2021</span>-02-08 <span class="token number">11</span>:27:48<span class="token punctuation">;</span><span class="token assign-left variable">thread_name</span><span class="token operator">=</span>main<span class="token punctuation">;</span><span class="token assign-left variable">id</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span><span class="token assign-left variable">is_daemon</span><span class="token operator">=</span>false<span class="token punctuation">;</span><span class="token assign-left variable">priority</span><span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">;</span><span class="token assign-left variable">TCCL</span><span class="token operator">=</span>sun.misc.Launcher$AppClassLoader@232204a1
<span class="token variable">`</span></span>---<span class="token punctuation">[</span><span class="token number">0</span>.810591ms<span class="token punctuation">]</span> demo.MathGame:run<span class="token punctuation">(</span><span class="token punctuation">)</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.034568ms<span class="token punctuation">]</span> java.util.Random:nextInt<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#23</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.119367ms<span class="token punctuation">]</span> demo.MathGame:primeFactors<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#24 [throws Exception]</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.017407ms<span class="token punctuation">]</span> java.lang.StringBuilder:<span class="token operator">&lt;</span>init<span class="token operator">&gt;</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#28</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.127922ms<span class="token punctuation">]</span> java.lang.String:format<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
+---<span class="token punctuation">[</span>min<span class="token operator">=</span><span class="token number">0</span>.01419ms,max<span class="token operator">=</span><span class="token number">0</span>.020221ms,total<span class="token operator">=</span><span class="token number">0</span>.034411ms,count<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">]</span> java.lang.StringBuilder:append<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.021911ms<span class="token punctuation">]</span> java.lang.Exception:getMessage<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
+---<span class="token punctuation">[</span><span class="token number">0</span>.015643ms<span class="token punctuation">]</span> java.lang.StringBuilder:toString<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
`---<span class="token punctuation">[</span><span class="token number">0</span>.086622ms<span class="token punctuation">]</span> java.io.PrintStream:println<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">#57</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>非函数调用的指令消耗。比如 <code>i++</code>, <code>getfield</code>等指令。</p></li><li><p>在代码执行过程中JVM 可能出现停顿,比如 GC进入同步块等。</p></li></ol><h3 id="使用-v-参数打印更多信息" tabindex="-1"><a class="header-anchor" href="#使用-v-参数打印更多信息" aria-hidden="true">#</a> 使用 -v 参数打印更多信息</h3><div class="custom-container tip"><p class="custom-container-title">提示</p><p>watch/trace/monitor/stack/tt 命令都支持 <code>-v</code> 参数</p></div><p>当命令执行之后,没有输出结果。有两种可能:</p><ol><li>匹配到的函数没有被执行</li><li>条件表达式结果是 false</li></ol><p>但用户区分不出是哪种情况。</p><p>使用 <code>-v</code>选项,则会打印<code>Condition express</code>的具体值和执行结果,方便确认。</p></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/trace.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: i@fatpandac.com">Fatpandac</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: wz9712203617@gmail.com">GGGGGHT</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: 47908685+duanwenjun@users.noreply.github.com">duanwenjun</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: haoyixing@kuaishou.com">haoyixing</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: favoorr@gmail.com">Jerry</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: xuzhiyi@youzan.com">徐志毅</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav right-menu-padding" data-v-fdd717e0><p class="inner"><span class="prev"><a href="/doc/thread.html" class="" aria-label="thread"><!--[--><!--]--> thread <!--[--><!--]--></a></span><span class="next"><a href="/doc/tt.html" class="" aria-label="tt"><!--[--><!--]--> tt <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
<script type="module" src="/assets/app.5024572d.js" defer></script>
</body>
</html>