[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1432":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":16,"starSnapshotCount":16,"syncStatus":37,"lastSyncTime":38,"discoverSource":39},1432,"arthas","alibaba\u002Farthas","alibaba","Alibaba Java Diagnostic Tool Arthas\u002FAlibaba Java诊断利器Arthas","https:\u002F\u002Farthas.aliyun.com\u002F",null,"Java",37359,7633,1109,383,0,4,22,68,18,95.8,"Apache License 2.0",false,"master",true,[27,7,5,28,29,30,31,32,33],"agent","classloader","diagnosis","java","jvm","trace","trouble-shooting","2026-06-12 04:00:09","## Arthas\n\n![arthas](site\u002Fdocs\u002F.vuepress\u002Fpublic\u002Fimages\u002Farthas.png)\n\n[![Build Status](https:\u002F\u002Fgithub.com\u002Falibaba\u002Farthas\u002Fworkflows\u002FJavaCI\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Falibaba\u002Farthas\u002Factions)\n[![download](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Falibaba\u002Farthas\u002Ftotal?label=Downloads)](https:\u002F\u002Fgithub.com\u002Falibaba\u002Farthas\u002Freleases\u002Flatest)\n[![maven](https:\u002F\u002Fimg.shields.io\u002Fmaven-central\u002Fv\u002Fcom.taobao.arthas\u002Farthas-packaging.svg)](https:\u002F\u002Fsearch.maven.org\u002Fsearch?q=g:com.taobao.arthas)\n![license](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Falibaba\u002Farthas.svg)\n[![Average time to resolve an issue](https:\u002F\u002Fisitmaintained.com\u002Fbadge\u002Fresolution\u002Falibaba\u002Farthas.svg)](https:\u002F\u002Fisitmaintained.com\u002Fproject\u002Falibaba\u002Farthas \"Average time to resolve an issue\")\n[![Percentage of issues still open](https:\u002F\u002Fisitmaintained.com\u002Fbadge\u002Fopen\u002Falibaba\u002Farthas.svg)](https:\u002F\u002Fisitmaintained.com\u002Fproject\u002Falibaba\u002Farthas \"Percentage of issues still open\")\n[![Leaderboard](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FArthas-Check%20Your%20Contribution-orange)](https:\u002F\u002Fopensource.alibaba.com\u002Fcontribution_leaderboard\u002Fdetails?projectValue=arthas)\n\n`Arthas` is a Java Diagnostic tool open sourced by Alibaba.\n\nArthas allows developers to troubleshoot production issues for Java applications without modifying code or restarting servers.\n\n[中文说明\u002FChinese Documentation](README_CN.md)\n\n### Background\n\nOften times, the production system network is inaccessible from the local development environment. If issues are encountered in production systems, it is impossible to use IDEs to debug the application remotely. More importantly, debugging in production environment is unacceptable, as it will suspend all the threads, resulting in the suspension of business services. \n\nDevelopers could always try to reproduce the same issue on the test\u002Fstaging environment. However, this is tricky as some issues cannot be reproduced easily on a different environment, or even disappear once restarted. \n\nAnd if you're thinking of adding some logs to your code to help troubleshoot the issue, you will have to go through the following lifecycle; test, staging, and then to production. Time is money! This approach is inefficient! Besides, the issue may not be reproducible once the JVM is restarted, as described above.\n\nArthas was built to solve these issues. A developer can troubleshoot your production issues on-the-fly. No JVM restart, no additional code changes. Arthas works as an observer, which will never suspend your existing threads.\n\n### Key features\n\n* Check whether a class is loaded, or where the class is being loaded. (Useful for troubleshooting jar file conflicts)\n* Decompile a class to ensure the code is running as expected.\n* View classloader statistics, e.g. the number of classloaders, the number of classes loaded per classloader, the classloader hierarchy, possible classloader leaks, etc.\n* View the method invocation details, e.g. method parameter, return object, thrown exception, and etc.\n* Check the stack trace of specified method invocation. This is useful when a developers wants to know the caller of the said method.\n* Trace the method invocation to find slow sub-invocations.\n* Monitor method invocation statistics, e.g. qps, rt, success rate and etc.\n* Monitor system metrics, thread states and cpu usage, gc statistics, and etc.\n* Supports command line interactive mode, with auto-complete feature enabled.\n* Supports telnet and websocket, which enables both local and remote diagnostics with command line and browsers.\n* Supports profiler\u002FFlame Graph\n* Support get objects in the heap that are instances of the specified class. \n* Supports JDK 6+ (version 4.x no longer supports JDK 6 and JDK 7).\n* Supports Linux\u002FMac\u002FWindows.\n\n\n### Online Tutorials(Recommended)\n\n* [View](https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Farthas-tutorials.html?language=en)\n\n### Quick start\n\n#### Use `arthas-boot`(Recommended)\n\nDownload`arthas-boot.jar`，Start with `java` command:\n\n```bash\ncurl -O https:\u002F\u002Farthas.aliyun.com\u002Farthas-boot.jar\njava -jar arthas-boot.jar\n```\n\nPrint usage:\n\n```bash\njava -jar arthas-boot.jar -h\n```\n\n#### Use `as.sh`\n\nYou can install Arthas with one single line command on Linux, Unix, and Mac. Copy the following command and paste it into the command line, then press *Enter* to run:\n\n```bash\ncurl -L https:\u002F\u002Farthas.aliyun.com\u002Finstall.sh | sh\n```\n\nThe command above will download the bootstrap script `as.sh` to the current directory. You can move it any other place you want, or put its location in `$PATH`.\n\nYou can enter its interactive interface by executing `as.sh`, or execute `as.sh -h` for more help information.\n\n\n### Documentation\n\n* [Online Tutorials(Recommended)](https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Farthas-tutorials.html?language=en)\n* [User manual](https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen)\n* [Installation](https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Finstall-detail.html)\n* [Download](https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fdownload.html)\n* [Quick start](https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fquick-start.html)\n* [Advanced usage](https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fadvanced-use.html)\n* [Commands](https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fcommands.html)\n* [WebConsole](https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fweb-console.html)\n* [Docker](https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fdocker.html)\n* [Arthas Spring Boot Starter](https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fspring-boot-starter.html)\n* [User cases](https:\u002F\u002Fgithub.com\u002Falibaba\u002Farthas\u002Fissues?q=label%3Auser-case)\n* [FAQ](https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Ffaq)\n* [Compile and debug\u002FHow to contribute](https:\u002F\u002Fgithub.com\u002Falibaba\u002Farthas\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md)\n* [Release Notes](https:\u002F\u002Fgithub.com\u002Falibaba\u002Farthas\u002Freleases)\n\n\n### Feature Showcase\n\n#### Dashboard\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fdashboard\n\n![dashboard](site\u002Fdocs\u002F.vuepress\u002Fpublic\u002Fimages\u002Fdashboard.png)\n\n#### Thread\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fthread\n\nSee what is eating your CPU (ranked by top CPU usage) and what is going on there in one glance:\n\n```bash\n$ thread -n 3\n\"as-command-execute-daemon\" Id=29 cpuUsage=75% RUNNABLE\n    at sun.management.ThreadImpl.dumpThreads0(Native Method)\n    at sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:440)\n    at com.taobao.arthas.core.command.monitor200.ThreadCommand$1.action(ThreadCommand.java:58)\n    at com.taobao.arthas.core.command.handler.AbstractCommandHandler.execute(AbstractCommandHandler.java:238)\n    at com.taobao.arthas.core.command.handler.DefaultCommandHandler.handleCommand(DefaultCommandHandler.java:67)\n    at com.taobao.arthas.core.server.ArthasServer$4.run(ArthasServer.java:276)\n    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n    at java.lang.Thread.run(Thread.java:745)\n\n    Number of locked synchronizers = 1\n    - java.util.concurrent.ThreadPoolExecutor$Worker@6cd0b6f8\n\n\"as-session-expire-daemon\" Id=25 cpuUsage=24% TIMED_WAITING\n    at java.lang.Thread.sleep(Native Method)\n    at com.taobao.arthas.core.server.DefaultSessionManager$2.run(DefaultSessionManager.java:85)\n\n\"Reference Handler\" Id=2 cpuUsage=0% WAITING on java.lang.ref.Reference$Lock@69ba0f27\n    at java.lang.Object.wait(Native Method)\n    -  waiting on java.lang.ref.Reference$Lock@69ba0f27\n    at java.lang.Object.wait(Object.java:503)\n    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)\n```\n\n#### jad\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fjad\n\nDecompile your class with one shot:\n\n```java\n$ jad javax.servlet.Servlet\n\nClassLoader:\n+-java.net.URLClassLoader@6108b2d7\n  +-sun.misc.Launcher$AppClassLoader@18b4aac2\n    +-sun.misc.Launcher$ExtClassLoader@1ddf84b8\n\nLocation:\n\u002FUsers\u002Fxxx\u002Fwork\u002Ftest\u002Flib\u002Fservlet-api.jar\n\n\u002F*\n * Decompiled with CFR 0_122.\n *\u002F\npackage javax.servlet;\n\nimport java.io.IOException;\nimport javax.servlet.ServletConfig;\nimport javax.servlet.ServletException;\nimport javax.servlet.ServletRequest;\nimport javax.servlet.ServletResponse;\n\npublic interface Servlet {\n    public void init(ServletConfig var1) throws ServletException;\n\n    public ServletConfig getServletConfig();\n\n    public void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;\n\n    public String getServletInfo();\n\n    public void destroy();\n}\n```\n\n#### mc\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fmc\n\nMemory compiler, compiles `.java` files into `.class` files in memory.\n\n```bash\n$ mc \u002Ftmp\u002FTest.java\n```\n\n#### retransform\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fretransform\n\nLoad the external `*.class` files to retransform\u002Fhotswap the loaded classes in JVM.\n\n```bash\nretransform \u002Ftmp\u002FTest.class\nretransform -c 327a647b \u002Ftmp\u002FTest.class \u002Ftmp\u002FTest\\$Inner.class\n```\n\n#### sc\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fsc\n\nSearch any loaded class with detailed information.\n\n```bash\n$ sc -d org.springframework.web.context.support.XmlWebApplicationContext\n class-info        org.springframework.web.context.support.XmlWebApplicationContext\n code-source       \u002FUsers\u002Fxxx\u002Fwork\u002Ftest\u002FWEB-INF\u002Flib\u002Fspring-web-3.2.11.RELEASE.jar\n name              org.springframework.web.context.support.XmlWebApplicationContext\n isInterface       false\n isAnnotation      false\n isEnum            false\n isAnonymousClass  false\n isArray           false\n isLocalClass      false\n isMemberClass     false\n isPrimitive       false\n isSynthetic       false\n simple-name       XmlWebApplicationContext\n modifier          public\n annotation\n interfaces\n super-class       +-org.springframework.web.context.support.AbstractRefreshableWebApplicationContext\n                     +-org.springframework.context.support.AbstractRefreshableConfigApplicationContext\n                       +-org.springframework.context.support.AbstractRefreshableApplicationContext\n                         +-org.springframework.context.support.AbstractApplicationContext\n                           +-org.springframework.core.io.DefaultResourceLoader\n                             +-java.lang.Object\n class-loader      +-org.apache.catalina.loader.ParallelWebappClassLoader\n                     +-java.net.URLClassLoader@6108b2d7\n                       +-sun.misc.Launcher$AppClassLoader@18b4aac2\n                         +-sun.misc.Launcher$ExtClassLoader@1ddf84b8\n classLoaderHash   25131501\n\n```\n\n\n#### vmtool\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fvmtool\n\nGet objects in the heap that are instances of the specified class.\n\n```bash\n$ vmtool --action getInstances --className java.lang.String --limit 10\n@String[][\n    @String[com\u002Ftaobao\u002Farthas\u002Fcore\u002Fshell\u002Fsession\u002FSession],\n    @String[com.taobao.arthas.core.shell.session.Session],\n    @String[com\u002Ftaobao\u002Farthas\u002Fcore\u002Fshell\u002Fsession\u002FSession],\n    @String[com\u002Ftaobao\u002Farthas\u002Fcore\u002Fshell\u002Fsession\u002FSession],\n    @String[com\u002Ftaobao\u002Farthas\u002Fcore\u002Fshell\u002Fsession\u002FSession.class],\n    @String[com\u002Ftaobao\u002Farthas\u002Fcore\u002Fshell\u002Fsession\u002FSession.class],\n    @String[com\u002Ftaobao\u002Farthas\u002Fcore\u002Fshell\u002Fsession\u002FSession.class],\n    @String[com\u002F],\n    @String[java\u002Futil\u002Fconcurrent\u002FConcurrentHashMap$ValueIterator],\n    @String[java\u002Futil\u002Fconcurrent\u002Flocks\u002FLockSupport],\n]\n```\n\n#### stack\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fstack\n\nView the call stack of `test.arthas.TestStack#doGet`:\n\n```bash\n$ stack test.arthas.TestStack doGet\nPress Ctrl+C to abort.\nAffect(class-cnt:1 , method-cnt:1) cost in 286 ms.\nts=2018-09-18 10:11:45;thread_name=http-bio-8080-exec-10;id=d9;is_daemon=true;priority=5;TCCL=org.apache.catalina.loader.ParallelWebappClassLoader@25131501\n    @test.arthas.TestStack.doGet()\n        at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)\n        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)\n        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)\n        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\n        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)\n        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\n        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)\n        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\n        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)\n        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)\n        ...\n        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)\n        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)\n        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)\n        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:451)\n        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1121)\n        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)\n        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)\n        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n        at java.lang.Thread.run(Thread.java:745)\n```\n\n#### Trace\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Ftrace\n\nSee what is slowing down your method invocation with trace command:\n\n![trace](site\u002Fdocs\u002F.vuepress\u002Fpublic\u002Fimages\u002Ftrace.png)\n\n#### Watch\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fwatch\n\nWatch the first parameter and thrown exception of `test.arthas.TestWatch#doGet` only if it throws exception.\n\n```bash\n$ watch test.arthas.TestWatch doGet {params[0], throwExp} -e\nPress Ctrl+C to abort.\nAffect(class-cnt:1 , method-cnt:1) cost in 65 ms.\nts=2018-09-18 10:26:28;result=@ArrayList[\n    @RequestFacade[org.apache.catalina.connector.RequestFacade@79f922b2],\n    @NullPointerException[java.lang.NullPointerException],\n]\n```\n\n#### Monitor\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fmonitor\n\nMonitor a specific method invocation statistics, including the total number of invocations, average response time, success rate, and every 5 seconds:\n\n```bash\n$ monitor -c 5 org.apache.dubbo.demo.provider.DemoServiceImpl sayHello\nPress Ctrl+C to abort.\nAffect(class-cnt:1 , method-cnt:1) cost in 109 ms.\n timestamp            class                                           method    total  success  fail  avg-rt(ms)  fail-rate\n----------------------------------------------------------------------------------------------------------------------------\n 2018-09-20 09:45:32  org.apache.dubbo.demo.provider.DemoServiceImpl  sayHello  5      5        0     0.67        0.00%\n\n timestamp            class                                           method    total  success  fail  avg-rt(ms)  fail-rate\n----------------------------------------------------------------------------------------------------------------------------\n 2018-09-20 09:45:37  org.apache.dubbo.demo.provider.DemoServiceImpl  sayHello  5      5        0     1.00        0.00%\n\n timestamp            class                                           method    total  success  fail  avg-rt(ms)  fail-rate\n----------------------------------------------------------------------------------------------------------------------------\n 2018-09-20 09:45:42  org.apache.dubbo.demo.provider.DemoServiceImpl  sayHello  5      5        0     0.43        0.00%\n```\n\n#### Time Tunnel(tt)\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Ftt\n\nRecord method invocation data, so that you can check the method invocation parameters, returned value, and thrown exceptions later. It works as if you could come back and replay the past method invocation via time tunnel.\n\n```bash\n$ tt -t org.apache.dubbo.demo.provider.DemoServiceImpl sayHello\nPress Ctrl+C to abort.\nAffect(class-cnt:1 , method-cnt:1) cost in 75 ms.\n INDEX   TIMESTAMP            COST(ms)  IS-RET  IS-EXP   OBJECT         CLASS                          METHOD\n-------------------------------------------------------------------------------------------------------------------------------------\n 1000    2018-09-20 09:54:10  1.971195  true    false    0x55965cca     DemoServiceImpl                sayHello\n 1001    2018-09-20 09:54:11  0.215685  true    false    0x55965cca     DemoServiceImpl                sayHello\n 1002    2018-09-20 09:54:12  0.236303  true    false    0x55965cca     DemoServiceImpl                sayHello\n 1003    2018-09-20 09:54:13  0.159598  true    false    0x55965cca     DemoServiceImpl                sayHello\n 1004    2018-09-20 09:54:14  0.201982  true    false    0x55965cca     DemoServiceImpl                sayHello\n 1005    2018-09-20 09:54:15  0.214205  true    false    0x55965cca     DemoServiceImpl                sayHello\n 1006    2018-09-20 09:54:16  0.241863  true    false    0x55965cca     DemoServiceImpl                sayHello\n 1007    2018-09-20 09:54:17  0.305747  true    false    0x55965cca     DemoServiceImpl                sayHello\n 1008    2018-09-20 09:54:18  0.18468   true    false    0x55965cca     DemoServiceImpl                sayHello\n```\n\n#### Classloader\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fclassloader\n\n```bash\n$ classloader\n name                                                  numberOfInstances  loadedCountTotal\n BootstrapClassLoader                                  1                  3346\n com.taobao.arthas.agent.ArthasClassloader             1                  1262\n java.net.URLClassLoader                               2                  1033\n org.apache.catalina.loader.ParallelWebappClassLoader  1                  628\n sun.reflect.DelegatingClassLoader                     166                166\n sun.misc.Launcher$AppClassLoader                      1                  31\n com.alibaba.fastjson.util.ASMClassLoader              6                  15\n sun.misc.Launcher$ExtClassLoader                      1                  7\n org.jvnet.hk2.internal.DelegatingClassLoader          2                  2\n sun.reflect.misc.MethodUtil                           1                  1\n```\n\n#### Web Console\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fweb-console\n\n![web console](site\u002Fdocs\u002F.vuepress\u002Fpublic\u002Fimages\u002Fweb-console-local.png)\n\n\n#### Profiler\u002FFlameGraph\n\n* https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fen\u002Fprofiler\n\n```bash\n$ profiler start\nStarted [cpu] profiling\n```\n\n```\n$ profiler stop\nprofiler output file: \u002Ftmp\u002Fdemo\u002Farthas-output\u002F20211207-111550.html\nOK\n```\n\nView profiler results under arthas-output via browser:\n\n![](site\u002Fdocs\u002F.vuepress\u002Fpublic\u002Fimages\u002Farthas-output-svg.jpg)\n\n#### Arthas Spring Boot Starter\n\n* [Arthas Spring Boot Starter](https:\u002F\u002Farthas.aliyun.com\u002Fdoc\u002Fspring-boot-starter.html)\n\n### Known Users\n\nArthas has more than 120 registered users, [View All](USERS.md).\n\nWelcome to register the company name in this issue: https:\u002F\u002Fgithub.com\u002Falibaba\u002Farthas\u002Fissues\u002F111 (in order of registration)\n\n![Alibaba](static\u002Falibaba.png)\n![Alipay](static\u002Falipay.png)\n![Aliyun](static\u002Faliyun.png)\n![Taobao](static\u002Ftaobao.png)\n![ICBC](static\u002Ficbc.png)\n![雪球财经](static\u002Fxueqiu.png)\n![顺丰科技](static\u002Fsf.png)\n![贝壳找房](static\u002Fke.png)\n![vipkid](static\u002Fvipkid.png)\n![百度凤巢](static\u002Fbaidufengchao.png)\n![有赞](static\u002Fyouzan.png)\n![科大讯飞](static\u002Fiflytek.png)\n![智联招聘](static\u002Fzhaopin.png)\n![达美盛](static\u002Fdms.png)\n\n\n### Derivative Projects\n\n* [Bistoury: A project that integrates Arthas](https:\u002F\u002Fgithub.com\u002Fqunarcorp\u002Fbistoury)\n* [A fork of arthas using MVEL](https:\u002F\u002Fgithub.com\u002FXhinLiang\u002Farthas)\n\n### Credits\n\n#### Contributors\n\nThis project exists, thanks to all the people who contributed.\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falibaba\u002Farthas\u002Fgraphs\u002Fcontributors\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002Farthas\u002Fcontributors.svg?width=890&button=false\" \u002F>\u003C\u002Fa>\n\n#### Projects\n\n* [bytekit](https:\u002F\u002Fgithub.com\u002Falibaba\u002Fbytekit) Java Bytecode Kit.\n* [greys-anatomy](https:\u002F\u002Fgithub.com\u002Foldmanpushcart\u002Fgreys-anatomy): The Arthas code base has derived from Greys, we thank for the excellent work done by Greys.\n* [termd](https:\u002F\u002Fgithub.com\u002Falibaba\u002Ftermd): Arthas's terminal implementation is based on termd, an open source library for writing terminal applications in Java.\n* [crash](https:\u002F\u002Fgithub.com\u002Fcrashub\u002Fcrash): Arthas's text based user interface rendering is based on codes extracted from [here](https:\u002F\u002Fgithub.com\u002Fcrashub\u002Fcrash\u002Ftree\u002F1.3.2\u002Fshell)\n* [cli](https:\u002F\u002Fgithub.com\u002Falibaba\u002Fcli): Arthas's command line interface implementation is based on cli, open sourced by vert.x\n* [compiler](https:\u002F\u002Fgithub.com\u002Fskalogs\u002FSkaETL\u002Ftree\u002Fmaster\u002Fcompiler) Arthas's memory compiler.\n* [Apache Commons Net](https:\u002F\u002Fcommons.apache.org\u002Fproper\u002Fcommons-net\u002F) Arthas's telnet client.\n* [async-profiler](https:\u002F\u002Fgithub.com\u002Fjvm-profiling-tools\u002Fasync-profiler) Arthas's profiler command.\n","Arthas是阿里巴巴开源的一款Java诊断工具，专为解决生产环境中Java应用的故障排查问题而设计。其核心功能包括检查类加载情况、反编译类文件、查看类加载器统计信息及方法调用详情等，帮助开发者在不修改代码或重启服务器的情况下快速定位和解决问题。该工具特别适用于无法直接访问生产环境网络或难以复现问题场景下的在线调试与性能分析，通过非侵入式的方式观察应用程序运行状态，避免了传统调试手段可能带来的业务中断风险。",2,"2026-06-11 02:43:42","top_all"]