몇 달 전에 Java 1.5에서 1.6 (J2EE, Tomcat)으로 전체 설정을 마이그레이션 한 후, Maven이 Sun의 javac 매개 변수 "-target 1.5"를 통해 1.5로 타겟팅 된 클래스 파일을 생성하도록 구성되었음을 알았습니다. "-target 1.5"를 "-target 1.6"으로 변경할 때 성능이 향상 될 것으로 기대합니까?"-target 1.5"를 사용하여 생성 된 Java 클래스 파일의 성능 영향은 1.6 VM에서 실행됩니까?
답변
별 차이가 없어야합니다. 1.6 파일은 바이트 코드 검증 속도를 향상시키는 스택 맵/테이블 구조를 가질 수 있습니다 (Apache Harmony는 더 똑똑한 알고리즘을 사용합니다).
당신은 클래스 상수의 초기 로딩이 약간 느린 것 1.4로 이동했다,하지만 관련이없는 클래스합니다 (ldc
바이트 코드의 새로운 형태 Class.forName
대체를로드하는 데 걸리는 시간을 주어,하지만 그 결과를 저장 한 경우 정적 필드에서)
일반적으로 중요하지 않습니다. 런타임 컴파일러는 중요한 비트이며 동일한 기계 코드를 생성 할 수 있습니다. 이전에는 런타임 컴파일러의 코드를 변경하지 않기 위해 최적화를 줄이기 위해 javac이 작성되었지만 -target
플래그와는 독립적입니다.
왜 성능 차이가 나는지 모르겠다. 클래스 형식 1.5와 1.6 사이에는 큰 차이가 없습니다. 다른 것을 변경하지 않으면 대상이 생성 된 클래스의 classversion id를 변경합니다.
Java 1.6은 바이트 코드 확인 프로세스를 단순화하는 different class-file-format을 사용합니다. 따라서 새로운 클래스 파일 형식을 사용하는 경우 시작 시간이 약간 개선되어야합니다.
링크가 더 이상 존재하지 않습니다. –
- 1. LoadControl의 성능 영향은 무엇입니까?
- 2. Java 클래스 경로에서 점 (.)의 영향은 무엇입니까?
- 3. java -target compile
- 4. Mango SDK의 Windows Phone Emulator가 VM에서 실행됩니까
- 5. getElementsByTagName ("*")의 성능 영향은 무엇입니까?
- 6. 범용 선택기의 성능 영향은 무엇입니까?
- 7. Eclipse 3.4.2 Mac OSX에서 Java 1.6 컴파일
- 8. Java Reflection을 사용하여 동적으로 클래스 생성, java.lang.ClassNotFoundException
- 9. Log4net을 사용하여 생성 된 파일의 이름 지정
- 10. Java 정책 파일의 생성 자동화
- 11. 1.5에서 Java 1.4 클래스 성능 JVM
- 12. 동적으로 생성 된 유형의 성능
- 13. 생성 된 파일의 MyBatis 예외
- 14. 동적으로 생성 된 클래스?
- 15. 스타일 및 자동 생성 된 R.java 파일의 Android 1.5/1.6 문제
- 16. clojure repl에서 사용할 때 생성 된 클래스 파일의 위치
- 17. java 런타임에 클래스 파일 생성
- 18. 이상한 컴파일 오류 - GAS3에서 생성 된 클래스
- 19. Java 1.6 JDK 도구, VisualVM
- 20. XML 문서에서 동적으로 Java 클래스 생성
- 21. WAR 파일의 BlazeDS 및 Java 클래스
- 22. Mac OS X의 애플릿 1.6
- 23. 1.6 용 Java 소스 연결
- 24. Java WebService : 생성 된 대신 기존 클래스 사용
- 25. JCodeModel을 사용하여 추상 클래스 생성
- 26. .xap 파일의 성능 테스트
- 27. .doc 파일의 동적 생성
- 28. Java - 다르게 압축 된 파일의 압축 해제
- 29. JRE 1.4는 Java 1.5 및 1.6으로 컴파일 된 클래스를 지원합니까?
- 30. CanExecuteCommand에 성능 관련 문제가 있습니까?
다음 업데이트를 위해 변경하려고합니다. 다 치지 않아야하며 더 일관성이 있습니다 ... – Kjeld