문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
java:performance [2015/08/24 15:06] kwon37xi |
java:performance [2020/09/17 23:00] (현재) kwon37xi |
||
---|---|---|---|
줄 25: | 줄 25: | ||
* [[http:// | * [[http:// | ||
* [[https:// | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
===== Java World Java Performance Series ===== | ===== Java World Java Performance Series ===== | ||
줄 32: | 줄 37: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
- | ===== 32bit/64bit JVM ===== | ||
- | * [[http:// | ||
- | * 64bit JVM은 32bit 보다 30~40%의 Heap을 더 사용한다. 따라서 더 많은 메모리 할당이 필요하고, | ||
- | * 32bit JVM의 제약 | ||
- | * 리눅스 : 최대 2GB Heap, hugemem 커널의 경우 3GB | ||
- | * 윈도우 : 최대 1.5GB Heap, ''/ | ||
- | * Mac OS X : 3.8GB | ||
===== JVM의 Heap을 무한정 늘리지 말 것 ===== | ===== JVM의 Heap을 무한정 늘리지 말 것 ===== | ||
* [[http:// | * [[http:// | ||
* JVM Heap을 무한정 늘리면 Full GC 시간 증가로 인해 오히려 성능 병목이 될 수 있다. | * JVM Heap을 무한정 늘리면 Full GC 시간 증가로 인해 오히려 성능 병목이 될 수 있다. | ||
- | * 32bit JVM을 사용하고 2~4GB 이하의 Heap 설정을 사용하는게 나을 수 있다. | ||
* JVM의 Heap을 증가시키기 보다는 JVM을 여러 대 띄운다. | * JVM의 Heap을 증가시키기 보다는 JVM을 여러 대 띄운다. | ||
* JVM을 여러개 띄울 수 없다면, | * JVM을 여러개 띄울 수 없다면, | ||
줄 49: | 줄 46: | ||
* GC 설정을 튜닝한다. 그러나 현재로서는 확실한 효과를 보장할 수 없을수도. | * GC 설정을 튜닝한다. 그러나 현재로서는 확실한 효과를 보장할 수 없을수도. | ||
* [[http:// | * [[http:// | ||
+ | |||
+ | ===== JIT Compiler option ===== | ||
+ | * [[http:// | ||
+ | * 특정 메소드가 일정 횟수 있상 실행되면 JIT Compiler가 native 코드로 컴파일한다. | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ===== Linux Tuning ===== | ||
+ | * [[linux: | ||
+ | * 기본적으로 '' | ||
+ | ulimit -n 32768 -u 32768 | ||
+ | </ | ||
===== HashMap.get/ | ===== HashMap.get/ | ||
* '' | * '' | ||
- | * 결론은 동시 접근이 필요할 경우에는 '' | + | |
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
줄 60: | 줄 69: | ||
* [[http:// | * [[http:// | ||
- | ===== JIT Compiler option | + | ===== Selector.select() CPU 100% ===== |
- | * [[http://www.javacodegeeks.com/2012/10/warming-up-your-jvm-superfast.html|Warming Up Your JVM - Superfast Production Servers and IDEs]] | + | * [[http://knight76.tistory.com/entry/Apache-Mina-%EC%82%AC%EB%A1%80%EC%97%90%EC%84%9C-%EB%B3%B8-Selectorselect-%EC%9D%B4%EC%8A%88-cpu-100-%ED%8A%80%EB%8A%94-%ED%98%84%EC%83%81|Apache Mina 사례에서 본 Selector.select() 이슈- cpu 100% 튀는 현상]] |
- | * 특정 메소드가 일정 횟수 있상 실행되면 JIT Compiler가 native 코드로 컴파일한다. | + | * [[http:// |
- | * '' | + | * [[http://bugs.java.com/ |
- | * '' | + | |