笔记与页面

JVM调优作业

有以下程序:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class GCTest {
    public static void main(String[] args) {
        ExecutorService executorService = Executors.newFixedThreadPool(30);
        while (true) {
            executorService.execute(GCTest::alloc);
        }
    }

    private static void alloc() {
        User user = new User();
        user.id = 1;
        user.name = "zhangsan";

        try {
            Thread.sleep(50);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
}
class User {

    /**
     * 1m对象
     */
    private Byte[] bytes = new Byte[1024 * 1024];

    Integer id;
    String name;
}

JVM参数:

-Xms1536M -Xmx1536M -Xmn512M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC

该程序频繁发生full gc,请找出原因并给出优化方式,优化方式可以是JVM参数优化,也可以是对程序进行修改。请把寻找原因的过程记录到笔记中,并私发给组长,如过程中遇到问题,可以在群里提问。

image-20230201164635550

记于阿紫的博客
← 返回文章归档