Java诊断神器:6到飞起的Arthas,这些功能赶紧安排一下!_arthas同时监控两个方法-程序员宅基地

技术标签: python  java  安全  linux  编程语言  

1.简介

什么是 Arthas?

摘录一段官方 Github 上的简介

阿里巴巴Arthas是一种诊断工具,使我们能够监视,分析和诊断Java应用程序。使用Arthas的主要好处之一是,我们不需要更改代码,甚至不需要重新启动要监视的Java服务。

在本文中,我们将先安装Arthas,然后再进行案例研究以演示Arthas的一些关键功能。

最后,由于Arthas是用Java编写的,因此它是跨平台的,可以在Linux,macOS和Windows上正常地运行。

2.下载和入门

首先,让我们开始直接通过下载链接或使用curl下载Arthas库:

curl -O https://alibaba.github.io/arthas/arthas-boot.jar

现在,让我们通过-h(帮助)选项运行Arthas来测试其是否正常工作:

java -jar arthas-boot.jar -h

如果成功,我们应该看到所有显示命令的帮助指南:
在这里插入图片描述

3.个案研究

在整个教程中,我们将使用一个非常简单的应用程序,该应用程序基于使用递归的Fibonacci序列的效率相当低的实现:

public class FibonacciGenerator {
   
    
 
    public static void main(String[] args) {
   
    
        System.out.println("Press a key to continue");
        System.in.read();
        for (int i = 0; i < 100; i++) {
   
    
            long result = fibonacci(i);
            System.out.println(format("fib(%d): %d", i, result));
        }
    }
 
    public static long fibonacci(int n) {
   
    
        if (n == 0 || n == 1) {
   
    
            return 1L;
        } else {
   
    
            return fibonacci(n - 1) + fibonacci(n - 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Mr_Flouxetin/article/details/106406226

智能推荐

MATLAB+GUI:手动修改曲线中的点_matlab如何将一条曲线的数据稍微修改一点-程序员宅基地

文章浏览阅读6.6k次,点赞5次,收藏31次。本文目的:手动修改已知曲线中的点 功能: 1、可以放缩图像,进行数据点的修改 2、可以选定数据点,并进行修改 3、数据点的修改不能超出相邻点的范围 4、可以移动坐标轴和图像,以方便观察整体图像 5、可以保存修改后的数据 由于不仅需要代码,还需要fig和数据等,可以私信索取。function varargout = movePoints(va..._matlab如何将一条曲线的数据稍微修改一点

termux无法安装引导程序包_安卓手机上安装termux,把手机当linux服务器用-程序员宅基地

文章浏览阅读3.0k次。旧的安卓手机不要扔,可以拿来做一个微型的linux服务器,编程开发,跑服务都不在话下!本文就以6年前发布的小米2s为例,亲自带大家一起体验一下这种手机服务器并简单分析其中的一些原理。一、升级最新安卓操作系统像小米2s这样已经发布6年多的手机,配置已经不够用了。但是我们知道,谷歌每年发布的新安卓系统版本都有性能的优化,所以旧手机如果能升级系统,自然也能改善性能。工欲善其事必先利其器,我们先把旧手机升..._termux引导程序包

RocketMQ生产部署-程序员宅基地

文章浏览阅读335次。本文英文原文来自RocketMQ官方部署文档文章目录前提准生产环境部署命名服务代理服务配置代理服务配置命令行管理工具如何访问如何使用复制模式复制:同步/异步 代理服务如何配置部署本章节介绍了准生产环境部署方案。综合来讲,我们要部署一套弹性伸缩并且没有单点故障的RocketMQ集群。前提开始本章之前,你需要先了解过快速开始,并且熟悉RocketMQ的组件和核心概念。准生产环境部署命名..._rocketmq生产部署

通过矩形的中心坐标与原顶点坐标以及旋转角度计算矩形的旋转后4个顶点的位置...-程序员宅基地

文章浏览阅读4.9k次。x2 = cos(q)(x1-x0) – sin(q)(y1-y0) + x0;y2 = sin(q)(x1-x0) + cos(q)(y1-y0) + y0;其中,q表示矩形的旋转角度,x1表示矩形的原顶点横坐标,x0表示矩形的中心坐标转载于:https://www.cnblogs.com/greystone/p/10115293.html..._c++长方形旋转求顶点坐标

springboot-shiro中的问题_shiro cachingenabled-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏2次。assertCredentialsMatch_shiro cachingenabled

如何修复注册表!-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏5次。注册表修复 Windows 95开始,微软公司在Windows中引入了注册表(英文为REGISTRY)的概念(实际上原来在Windows NT中已经有此概念)。注册表是Windows95及Windows98的核心数据库,表中存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些 Windows应用程..._无法导入 \hkey_dyn_data.reg: 访问注册表时出错。

随便推点

解决EditText 键盘imeOptions 设置后与换行冲突问题-程序员宅基地

文章浏览阅读604次。解决EditText 键盘imeOptions 设置后与换行冲突问题EditText imeOptions 设置必然需要设置singleLines=true 或者设置 inputType=“textXXX”, 这就不太符合需求。 解决办法:继承 EditTextpublic InputConnection onCreateInputConnection(EditorInfo outAttrs) { InputConnection connection = super.onCreate_解决edittext 键盘imeoptions 设置后与换行冲突问题

Pycharm配置Anaconda中的Tensorflow环境详解_pycharm配置anaconda的tensorflow-程序员宅基地

文章浏览阅读4.9w次,点赞6次,收藏21次。Pycharm配置Anaconda中的Tensorflow环境详解1.打开Pycharm软件,新建工程,点击File->Default Settings->Project Interprete2.默认的应该是anaconda下的python环境,我们点击Existing enviroment:3.点击右边...添加:4.找到anaconda目录下的envs,因为我装了两次Tensorfnslow(每创建一个环境,就可以安装一个,不冲突),所以可以看到我这边会有两个这种_pycharm配置anaconda的tensorflow

符号扩展,零扩展与符号缩减-程序员宅基地

文章浏览阅读1.6w次,点赞23次,收藏101次。1. 符号位扩展,零扩展,符号位缩减1.1 符号位扩展高级程序设计语言允许程序员使用包含不同大小整数的对象表达式。那么,当一个表达式的两个操作数大小不同时,有些语言会报错,有些语言则会自动将操作数转换成一个统一的格式。这种转换是有代价的,因此如果你不希望编译器在你不知情的情况下自动加入各种转换到原本非常完美的代码中,你就需要掌握编译器如何处理这些表达式。以-64为例,其8位的二进制补码(1100 0_符号扩展

【引用】DMA内存申请--dma_alloc_coherent_dma引用-程序员宅基地

文章浏览阅读2.8k次。在项目驱动过程中会经常用到dma传输数据,而dma需要的内存有自己的特点,一般认为需要物理地址连续,并且内存是不可cache的,在linux内核中提供一个供dma所需内存的申请函数dma_alloc_coheren. 如下所述:dma_alloc_coherent()dma_alloc_coherent() -- 获取物理页,并将该物理页的总线地址保存于dma_handle,返回该物理页的虚拟地址_dma引用

JAVA—— Linux(二)_java llinux-程序员宅基地

文章浏览阅读1.1k次。文章目录1 Linux文件管理1.1 touch命令1.2 vi与vim命令1.2.1 vi/vim介绍1.2.2 vi/vim模式1.2.3 打开和新建文件1.2.4 三种模式切换1.2.5 文件查看**1) cat命令**2) grep命令3) tail命令4)less命令1.2.6 vim定位行**1.2.7 异常处理**1.2.8 操作扩展1.3 echo 命令第二步: 将**命令的成功结果** **追加** 指定文件的后面第三步: 将**命令的失败结果** **追加** 指定文件的后面1.4 _java llinux

使用PHP ping域名或IP_是什么/php/ping.php?hostname=|dir-程序员宅基地

文章浏览阅读1.3w次。废话没有,直接贴代码。<?php/** * 使用PHP检测能否ping通IP或域名 * @param type $address * @return boolean */function pingAddress($address) { // Windows 服务器下 $pingresult = exec("ping -n 1 {$address}", $outco_是什么/php/ping.php?hostname=|dir</div>