天天看点

内存调优实例:JVM堆大小

1、创建一个Spring Boot实例

@RestController
public class GcTestController {
    private Queue<Greeting> queue = new ConcurrentLinkedQueue<>();
    @RequestMapping("/greeting")
    public Greeting hello() {
        Greeting greeting = new Greeting("Hello world!");
        if(queue.size()>200000){
            queue.clear();
        }else{
            queue.add(greeting);
        }
        return greeting;
    }

}


class Greeting{
    private String message;

    public Greeting(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}
           

备注:这样一个代码竟然在controller里开辟了一个队列用来存放对象,这个队列在达到20万的容量后才会清空。这些对象会驻留在老年代,用来模拟老年代的gc情况。

2、命令行启动程序

java -Xmx32m -Xss256k -