大家好,又见面了,我是你们的朋友全栈君。
jvm调优工具Arthas阿尔萨斯
官方文档
https://arthas.aliyun.com/doc/
下载
curl -O https://arthas.aliyun.com/arthas-boot.jar
启动
java -jar arthas-boot.jar
FullGC_Problem01是我们刚启动的java进程
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 FullGC_Problem01 {
private static class CardInfo {
BigDecimal price = new BigDecimal(0.0);
String name = "张三";
int age = 5;
Date birthdate = new Date();
public void m() {
}
}
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<CardInfo> taskList = getAllCardInfo();
taskList.forEach(info -> {
// do something
executor.scheduleWithFixedDelay(() -> {
// do sth with info
info.m();
}, 2, 3, TimeUnit.SECONDS);
});
}
private static List<CardInfo> getAllCardInfo() {
List<CardInfo> taskList = new ArrayList<>();
for (int i = 0; i < 100; i++) {
CardInfo ci = new CardInfo();
taskList.add(ci);
}
return taskList;
}
}
监控
输入1回车,将arthas挂上去
开始对FullGC_Problem1进程进行监控
dashboard
它会不断刷新
线程信息、内存信息、运行时环境
查看是否有线程死锁
thread -b
追踪方法的执行链路
trace FullGC_Problem01 modelFit
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138301.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...