문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
java:options [2017/08/08 08:55] kwon37xi |
java:options [2021/08/02 16:31] (현재) kwon37xi |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====== Oracle(SUN) JVM Options ====== | ====== Oracle(SUN) JVM Options ====== | ||
* JVM 기본 옵션 출력< | * JVM 기본 옵션 출력< | ||
+ | java -XX: | ||
+ | // or | ||
java -XX: | java -XX: | ||
</ | </ | ||
+ | * 메모리 관련 항목은 '' | ||
* [[http:// | * [[http:// | ||
+ | * [[https:// | ||
* [[http:// | * [[http:// | ||
* '' | * '' | ||
줄 28: | 줄 32: | ||
>> built-in 예외가 반복적으로 발생할 경우 메소드를 다시 컴파일 하여 성능을 높일 수 있다. 재컴파일 이후, 컴파일러는 미리 할당된 예외를 던지는데, | >> built-in 예외가 반복적으로 발생할 경우 메소드를 다시 컴파일 하여 성능을 높일 수 있다. 재컴파일 이후, 컴파일러는 미리 할당된 예외를 던지는데, | ||
- | 이 경우, **동일 JVM에서 비슷하게 발생한 다른 에러 로그를 찾아보면 과거에 발생했던 에러 로그에서 stacktrace를 찾을 수 있다.** | + | 원천적이로 이 기능을 끄려면 '' |
- | 원천적이로 이 기능을 끄려면 | + | |
+ | 이 경우, **동일 JVM에서 비슷하게 발생한 다른 에러 로그를 찾아보면 과거에 발생했던 에러 로그에서 stacktrace를 찾을 수 있다.** | ||
+ | |||
+ | 재현해보기 | ||
+ | <code java> | ||
+ | public class NpeThief { | ||
+ | public void callManyNPEInLoop() { | ||
+ | for (int i = 0; i < 1000000; i++) { | ||
+ | try { | ||
+ | ((Object)null).getClass(); | ||
+ | } catch (Exception e) { | ||
+ | // stacktrace길이가 2 이다가 어느 순간 0으로 바뀐다. | ||
+ | System.out.println(e.getStackTrace().length); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | public static void main(String ... args) { | ||
+ | NpeThief thief = new NpeThief(); | ||
+ | thief.callManyNPEInLoop(); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== -XX: | ||
+ | * '' | ||
+ | |||
+ | ===== 참조 ===== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// |