2013-03-14 3 views
8

내 RCP 제품의 possible JVM flags for optimizing launching startup time을 살펴본 결과 -XX:UseFastEmptyMethods-XX:UseFastAccessorMethods이라는 매력적인 이름을 발견했습니다.JVM 옵션 XX : UseFastEmptyMethods/XX : UseFastAccessorMethods

JDK-6에서는 기본적으로 플래그가 사용 가능하고 JDK-7에서는 기본적으로 플래그가 해제 된 것으로 보입니다. 또한이 최적화에 대한 절충은 메서드 호출 카운터를 늘리지 않는다는 것입니다.

호출 카운터를 사용하지 않을 경우의 영향은 무엇입니까? 가비지 수집에 영향을 줍니까?

+1

메신저 추측이 늘 GC에 영향을 미칠하지만, 그 카운터를 최적화 – radai

답변

7

VM이 코드의 핫스팟을 더 잘 식별 할 수 있도록 메소드의 호출 횟수를 올바르게 가져 오는 것입니다.
-XX : here

에서 논의 당신이 JDK6에 있다면, 당신은 당신의 대상 Java 응용 프로그램에서이 두 VM 플래그를 포함해야합니다 다음

-UseFastEmptyMethods-XX : -UseFastAccessorMethods

그렇지 않으면 목록에 표시되지 않습니다 방법과 접근 방법의,617 때문에 빈"fast"버전은이 메소드에 대한 호출 카운터를 증가시키지 않습니다. JDK7에서이 두 플래그의 기본값은 false이므로 을 false로 명시 적으로 설정하지 않아도됩니다.


항목 :

UseFastEmptyMethods/UseFastAccessorMethods considered harmful

+1

한 덕분에 "핫"코드 경로를 결정하는 데 사용되기 때문에 JIT에 영향을 미칠 수 있습니다. 대답의 첫 부분은 약간의 관련이 없지만 (왜 플래그를 켜는 데 어떤 결과가 있는지 묻습니다) 두 번째 링크가 유용합니다. 아직도 어떤 상황에서 그 국기를 켜는 것이 안전하다고 생각하는지 배울 것입니다. –

관련 문제