컴파일 된 메소드에 대한 로그 정보를 제공하는 플래그가 있습니다. 컴파일되지 않은 메소드와 컴파일되지 않은 이유에 대한 정보는 어디에 있습니까? 핫스팟 컴파일러가 어떻게 결정을 내리고 특정 메소드를 컴파일하지 않는 이유를 알면 JVM에 대한 더 나은 이해를 얻고 더 나은 코드를 작성하고 가능하면 일부 메소드를 최적화 할 수 있습니다. 누구든지이 주제에 대해 어떤 생각을 가지고 있습니까? 당으로핫스팟 JVM에서 메소드가 컴파일되지 않는 이유
2
A
답변
2
: http://blog.headius.com/2009/01/my-favorite-hotspot-jvm-flags.html
-XX : + PrintCompilation 인쇄 핫스팟 이 JIT 컴파일로 결심 한 각 Java 메소드의 이름을 알아. 이 목록은 보통 코어 Java 클래스 메소드를 처음에 표시하고 을 애플리케이션의 메소드로 바꿉니다.
내 개인적인 믿음은 당신의 많은 시간을 빨아 먹을 것입니다. 베스트 프랙티스와 상식을 사용하여 코딩 한 다음 성능이 문제가되는 경우 프로필을 작성하십시오. 당신은 잘해야합니다.
0
대답은 메서드가 충분히 실행되지 않은 경우 컴파일되지 않을 수 있다는 것입니다. 네이티브 코드 캐시는 제한되어 있으므로 모든 방법을 컴파일하는 것은 비생산적입니다. 컴파일 된 많은 메소드로 끝날 수 있지만 중요한 메소드는 더 이상 캐시 크기에 맞지 않습니다.
정확한 숫자
은 릴리스마다 다를 수 있지만,-XX:+PrintFlagsFinal
자바를 실행하면 당신은 값 15000을 가지고
Tier4CompileThreshold
((값 2000이있는)
Tier3CompileThreshold
를 포함, 당신이 조정할 수있는 설정을 모두 볼 수 있습니다). 따라서 2000 번 이상 호출하지 않으면 인터프리터를 통해 처리 할 수 있습니다.
JIT 조건에서 프로파일 링을 수행하려면 이점을 확인하기 위해 메소드를 호출하는 상당한 수의 루프를 수행하거나 JMH과 같은 프로파일 링 하니스를 사용하여 프로파일 링을 올바르게 수행해야합니다.
관련 문제
- 1. Groovy에서 일부 메소드가 컴파일되지 않는 이유는 무엇입니까?
- 2. 내 C 코드가 EXE 파일로 컴파일되지 않는 이유
- 3. 이 컴파일되지 않는, 게터가
- 4. ison에서 json 파싱 할 때 nsurldelegates 메소드가 호출되지 않는 이유
- 5. GCC에서 컴파일되지 않는 휴대용 아카이브
- 6. GCC 4.2로 컴파일되지 않는 HICococaView
- 7. 핫스팟 이름이 핫스팟 작성시 업데이트되지 않았습니다.
- 8. 인터 포저 클래스가 컴파일되지 않는 이유는 무엇입니까?
- 9. Dreamweaver 핫스팟
- 10. System.Web.Mail이 작동하지 않는 이유 System.Net.Mail이 작동하지 않는 이유
- 11. Asp.NET MVC로 이동해야하는 이유 - 이동하지 않는 이유
- 12. 예외가 잡히지 않는 이유
- 13. DataStateBehavior가 작동하지 않는 이유
- 14. SqlDependency가 실행되지 않는 이유
- 15. 존재하지 않는 메소드가 Perl을 호출합니다.
- 16. Xcode가 프로젝트에서 파일을 빌드하지 않는 이유
- 17. Perl에서이 map 문이 컴파일되지 않는 이유는 무엇입니까?
- 18. 이 열거 형이 컴파일되지 않는 이유는 무엇입니까?
- 19. 이 프롤로그 프로그램이 컴파일되지 않는 이유는 무엇입니까?
- 20. Android 애플리케이션이 소스에서 컴파일되지 않는 이유는 무엇입니까?
- 21. 핫스팟 결제 시스템 개발
- 22. 게시물이 아무 것도하지 않는 이유
- 23. html.encode가 HtmlString을 반환하지 않는 이유
- 24. 이미지가 너비를 채우지 않는 이유
- 25. "tel :"링크가 작동하지 않는 이유
- 26. 이 코드가 작동하지 않는 이유
- 27. 배경이 올바르게 표시되지 않는 이유
- 28. 하지 않는 이유 코드에 대한
- 29. 이미지가 UIImageView에 표시되지 않는 이유
- 30. IE에서 Flexigird가 작동하지 않는 이유