【死磕JVM】用Arthas排查JVM内存 真爽,java程序编译原理

本文介绍了如何使用Arthas工具进行JVM内存排查,包括快速启动、JVM信息查看、线程分析、dashboard监控等功能。通过示例代码展示了Arthas在内存泄漏检测、线程堆栈跟踪等方面的实用性,强调了其在Java程序编译原理理解上的帮助。
摘要由CSDN通过智能技术生成

下载地址:https://arthas.gitee.io/download.html

你可以下载zip的包我下载的是arthas-packaging-3.5.0-bin.zip

或者通过命令去下载

wget https://alibaba.github.io/arthas/arthas-boot.jar

使用手册


1. 快速启动

当我们下载好之后,我们直接通过命令启动就可以java -jar arthas-boot.jar,但是在此之前我们需要通过检测的代码来挂靠到Arthas上面

import java.math.BigDecimal;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import java.util.concurrent.ScheduledThreadPoolExecutor;

import java.util.concurrent.ThreadPoolExecutor;

import java.util.concurrent.TimeUnit;

public class FullGCTest {

//模拟银行卡的类

private static class CardInfo {

//小农的银行卡信息记录

BigDecimal price = new BigDecimal(10000000.0);

String name = “牧小农”;

int age = 18;

Date birthdate = new Date();

public void m() {}

}

//线程池 定时线程池

//50个,然后设置 拒绝策略

private static ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(50,

new ThreadPoolExecutor.DiscardOldestPolicy());

public static void main(String[] args) throws Exception {

executor.setMaximumPoolSize(50);

for (;😉{

modelFit();

Thread.sleep(100);

}

}

/**

  • 对银行卡进行风险评估

*/

private static void modelFit(){

List taskList = getAllCardInfo();

//拿出每一个信息出来

taskList.forEach(info -> {

// do something

executor.scheduleWithFixedDelay(() -> {

//调用M方法

info.m();

}, 2, 3, TimeUnit.SECONDS);

});

}

private static List getAllCardInfo(){

List taskList = new ArrayList<>();

//每次查询100张卡出来

for (i

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值