로직
1. VisualVM 설치 (VMX port 추가해서 WSL과 연결)
2. 연결된 참조가 없는 데이터들을 무한 대량 생성
3. 가비지 컬렉션이 작동 X
4. 힙 영역이 다 차면서 프로그램 종료
Code
import com.beust.jcommander.JCommander;
import com.beust.jcommander.ParameterException;
import java.util.ArrayList;
import java.util.List;
public class HelloWorld {
static class Sample{
String name;
public Sample(String name) {
this.name = name;
}
public void Sample(String name){
this.name = name;
}
}
public static void main(String args[]){
Args param = new Args();
JCommander jCommander = new JCommander(param);
try{
jCommander.parse(args);
String profile = param.getProfile();
List<List<Sample>> sampleList = new ArrayList<>();
while(true){
try{
Thread.sleep(1000);
ArrayList tempList = new ArrayList<Sample>(10000000);
tempList.add(new Sample(profile));
sampleList.add(tempList);
}catch (InterruptedException e) {
e.printStackTrace();
}
}
}catch (ParameterException e){
JCommander.getConsole().println(e.toString());
jCommander.usage();
}
}
}
WSL 명령어
java -verbose:gc -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=3030 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -cp HelloWorld2.main.jar HelloWorld --profile 지연
실행 결과
1) Local
2) WSL
VisualVM 결과
'Dev > 기타' 카테고리의 다른 글
[gRPC] 개념 정리 (0) | 2022.01.25 |
---|---|
Armeria의 서킷 브레이커 (0) | 2022.01.17 |
Jib 예제 따라하기 (0) | 2021.08.09 |
Spark 성능 테스트 (0) | 2021.08.09 |
[명품자바프로그래밍] 12장 실습문제 8번 (0) | 2020.10.17 |