这篇文章通过一个简单的案例来向大家介绍一下几种JVM内存调优方式,希望大家可以通过实践将理论知识形成一个闭环,纸上谈兵是最没有意义的
一、测试案例
该接口 随机产生不同大小的对象,最大4M
/**
* 内存调优测试
* @return
*/
@GetMapping("/tuningTest")
public String tuningTest(){
List<Byte[]> temp = new ArrayList<Byte[]>();
// 随机产生不同大小的对象,最大4MB
int i = new Random().nextInt(8)+1;
Byte[] bytes = new Byte[1024 * 512 * i];
temp.add(bytes);
return "Success";
}
二、测试过程
首先最大堆内存设置800M,初始堆大小也是800M,测试不同并发线程相同请求量的吞吐量以及相应时间
1. 10并发线程/50000请求量 结果(吞吐量:531 平均响应时间:17)
2.20并发线程/50000请求量 结果(吞吐量:566平均响应时间:39)
3.40并发线程/50000请求量 结果(吞吐量:530平均响应时间:78)