728x90
반응형
blogs.sap.com/2019/10/07/does-32-bit-or-64-bit-jvm-matter-anymore/
위 블로그에 정리가 잘 되어있다고 생각해 나름 요약하며 번역을 해 보았다.
일단 대부분 사람들은 64비트가 32비트보다 크다고 생각해서 64bit JVM의 성능이 32bit JVM보다 훨씬 성능이 좋다고 생각한다.
아쉽게도 64bit JVM이 32bit JVM보다 성능 저하를 보일 수 있다.
퍼포먼스에 대한 문제점이 있다면 왜 64bit JVM을 사용하는가?
32bit JVM 의 최대 메모리 공간은 4gb이다. 그 말인 즉 사용할 수 있는 java process의 사이즈가 4gb를 넘을 수 없다는 것이다. 각 운영체제에 정한 최대 heap 사이즈는 다음과 같다.
왜 64bit JVM이 32bit JVM보다 느린가?
시스템에 있는 native pointer가 4byte가 아닌 8byte를 차지한다.
4byte에서 8byte로 늘어나면서 추가적인 데이터 loading이 메모리 사용량에 영향을 준다
32bit JVM을 사용하다 64bit JVM으로 넘어가려 할 때 고려해야할 것은?
- GC pause time : 마이그레이션을 하는 이유 중 가장 중요한 이유로 큰 heap size를 사용하기 위함에 있다. 만약 heap size를 증가시키려고 하면 당신의 GC pause time은 자동적으로 상승할 것이다. 왜냐하면 GC에는 이제 더 많은 garbage가 존재하고 그걸 치워야 하기 때문이다.
- Native Library : 만약 당신의 프로그램이 JNI를 사용한다면 일단 그 Native Library도 업그레이드 해야한다. 왜냐하면 32bit JVM에서는 32bit Native Library만 사용할 수 있기 때문이다.
그렇다면 어떤 JVM을 사용해야할까?
만약 사용하는 heap size의 최대 사이즈가 2gb보다 작다? 무조건 32bit JVM을 사용해라.
만약 2gb보다 크다면 이 또한 말할 것 없이 무조건 64bit JVM을 사용해라. 그러나 마이그레이션 이후 퍼포먼스 테스트는 반드시 해야한다.
728x90
반응형
'JAVA' 카테고리의 다른 글
자바 GUI프로그램 IOConsole 글자 수 조절하기 (0) | 2020.11.15 |
---|---|
자바 toUpperCase, toLowerCase를 이용한 대소문자 변환 (0) | 2020.11.12 |
자바 - 타임스탬프 만들기 (0) | 2020.10.09 |
자바 컬렉션 프레임워크 (1) (0) | 2020.09.08 |
SWT - 마우스스크롤 이벤트 막기 (0) | 2020.09.02 |