자바 성능 튜닝
성능에 영향을 미치는 요인은 크게 두 가지로 나눌 수 있다.
GC, HotSpot
* 2GB의 힙을 사용하는 JVM과 8GB의 힙을 사용하는 JVM의 차이는 어떻게 나타날까?
2GB의 힙을 사용하는 JVM이 GC를 처리하는 “STOP-THE-WORLD”가 짧을 것이므로 성능 상 유리할 수 있다.
반면에 8GB의 힙은 GC를 처리하는 시간은 길지 모르나 2GB의 힙에 비해 GC가 덜 빈번하게 일어나 성능 상 유리할 수도 있다.
32bit JVM vs 64bit JVM
동일 조건이라면 32bit JVM이 성능 상 더 유리하다.
왜?)
웹 서버의 가장 좋은 GC알고리즘은 무엇인가?
모든 경우는 아니지만 대부분 Concurrent Mark Sweep GC알고리즘이 성능이 가장 좋다. 이유는 낮은 딜레이가 중요하기 때문이다.
New 영역과 Old영역의 GC
New 영역의 GC보다 Old 영역에서 일어나는 Full GC가 일반적으로 시간이 오래 걸리기 때문에 New GC에서 충분한 크기를 잡아주는 것 역시 중요하다.
New영역이 너무 커져버려도 반응 속도가 느려 질 수 있다.
NEW영역에서의 GC의 메커니즘은 한 서바이버 영역에서 다른 서바이버 영역으로 복사가 일어나므로 이 또한 "STOP THE WORLD"가 발생한다.
'JAVA' 카테고리의 다른 글
LinkedHashMap, TreeMap, HashMap (0) | 2015.11.07 |
---|---|
Comparable 인터페이스에 대한 이해 (0) | 2015.11.07 |
자바의 시간 API (0) | 2015.11.07 |
Commons DBCP (0) | 2015.11.07 |
자바 classpath (0) | 2015.11.03 |