문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
java:performance [2015/08/01 22:28] kwon37xi |
java:performance [2018/03/06 15:38] kwon37xi [32bit/64bit JVM] |
||
---|---|---|---|
줄 24: | 줄 24: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
===== Java World Java Performance Series ===== | ===== Java World Java Performance Series ===== | ||
줄 31: | 줄 35: | ||
* [[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을 무한정 늘리지 말 것 ===== | ||
줄 49: | 줄 46: | ||
* [[http:// | * [[http:// | ||
- | ===== HashMap.get, | + | ===== JIT Compiler option ===== |
- | * '' | + | * [[http:// |
- | * 동시 접근이 필요할 경우에는 '' | + | * 특정 메소드가 일정 횟수 있상 실행되면 JIT Compiler가 native 코드로 컴파일한다. |
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ===== HashMap.get/getEntry, WeakHashMap.get/getEntry 에 대한 동시 접근은 CPU 사용률 증가(High 100%) 유발 ===== | ||
+ | * '' | ||
+ | * **결론은 | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
줄 57: | 줄 60: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | ===== Selector.select() CPU 100% ===== | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ |