Sun Java 1.4.2 VM에서 실행중인 일부 이전 Java 소스를 Sun Java (JRE) 6 VM으로 방금 업그레이드했습니다. . 다소 변경된 것은 추상적 인 객체 (Hashmap, Vector 등)에 대한 명시적인 데이터 유형을 추가하는 것이 었습니다. 코드 자체는 매우 메모리 집약적이며 최대 1G의 힙 메모리를 사용합니다 (VM을 시작하는 매개 변수로 -Xmx1024m 사용).Java 1.4.2에서 Java 6 (둘 다 Sun VM)로 업데이트하면 성능이 저하됨
최신 Java VM에서 성능 향상에 대해 많이 읽었으므로이 업그레이드를 수행 한 이유 중 하나였습니다.
- 누구나 지금 내 경우에는 성능이 왜 나쁜지 생각할 수 있습니까? (물론 일반적으로, 물론 코드를 살펴볼 수 없기 때문입니다)?
- 기존 코드를 최적화 (속도를 현명하게)하고 싶다면 자바 전문가가 아닌 사람에게 조언을 구하십시오. 힌트, 추천 문서, 도구는 무엇입니까?
감사합니다.
나는 이것이 정말로 영향을 줄지는 모르겠지만 Vector를 사용하지 않으면 내장 된 동기화/스레드 안전성이 과도 할 수도 있습니다 –
자바 6에서 원래의 정숙 1.4.2 컴파일 된 코드를 실행 해 보았습니까? 특정 가비지 콜렉터를 선택할 수도 있습니다. 또한 -d32를 사용하여 포인터에 너무 많은 메모리를 사용하지 않도록 할 수 있습니다. –