2012-01-30 3 views
0

마샬링에 JAXB를 사용하고 있습니다. 다른 객체 내부의 객체를 마샬링 할 때 내부 객체의 메서드 (예 : 객체 A에는 B 유형의 필드가 있음)가 주목되었습니다. 객체 B에는 String에 대한 getter가 있습니다.이 메서드는 두 번 호출됩니다 String의 취득 자) null이 아닌지 (hasValue 메소드를 통해) 검사하고 실제 값을 얻기 위해 또 다른 시간 (writeLeafElememnt를 통해)을 확인하기 위해 한 번.JAXB : 메서드에 대한 불필요한 호출

이것은 매우 비효율적 인 것처럼 보입니다. 이 기능을 무시하는 방법에 대한 의견이 있으십니까?

대단히 감사합니다.

+0

JAXB (JSR-222) 구현 중 Metro (참조 구현), EclipseLink MOXy, Apache JaxMe? –

답변

1

첫 번째로 모든 getter 메소드가 필드 값을 반환하면 성능에 거의 영향을 미치지 않습니다. JVM은 이러한 종류의 최적화에 매우 뛰어납니다.

그러나 실제로 피하고 싶다면 getter 메서드에 주석을다는 대신 필드에 직접 주석을 달 수 있습니다. 그러나 성능에는 아무런 차이가 없습니다.

이것은 조기 마이크로 최적화의 고전적인 예입니다. 느린 것이 있다고 생각되면 그것을 측정하십시오. 퍼포먼스 핫스팟 일 경우에만 그 일에 대해 뭔가를하십시오.

관련 문제