2011-03-18 4 views
0

나는 한 달 정도 그루비를 읽었습니다. 최근에 나는 다음과 같은 코드를 건너 온 한 :이 코드는 groovy가 성능이 좋지 않은 것처럼 보입니까? 그렇지?

class MyBean implements Serializable { 
    def untyped 
    String typed 
    def item1, item2 
    def assigned = 'default value' 
} 

을 그리고 내가 할 때 : 위의 코드는 GroovyBeans 매우 매우 인상적하게,하지만 여전히 내 질문이있다 그러나

def bean = new MyBean() 
assert 'default value' == bean.getAssigned() 

: 비록 을 우리 getter 함수 (getAssigned())를 만들지 않았습니다. groovy가 우리에게 도움이됩니다. 우리가 일하기를 의도하지는 않았지만 그루비가 모든 수업에 이것을 만들어내는 것입니까? GRoovyBeans? 이것은 우리가 원하는 것은 아닐지라도 모든 클래스에 대해 setter와 getter를 생성한다는 것을 의미합니다. 성능 문제가 아닌가요? 그렇지 않으면 내 견해가 어둡습니까?

답변

1

클래스에 메서드를 추가해도 호출 할 필요가 없으므로 성능 문제가 발생하지 않습니다.

당신이 속성에 대한 직접 액세스를 원하는 경우에, 당신은 Java field operator 사용할 수 있습니다 자동으로 생성 한 방법을 대체하는 사용자 정의 방법을 찾기 위해이

[email protected] 
+0

아니오 것은 당연하고 그것을 가지고,이 너무 많은 단계를 거쳐야하기 때문에 성능 문제가 있습니까? –

+0

이것은 실제로 성능에 불필요합니다. Java는 간단한 getter를 인라인 할만큼 똑똑하고 특히 "final"이라고 표시하는 경우에는 클래스의 디자이너가 getter를 호출하기 때문에 모든 것을 더 짜증나게 만듭니다. (코드가 너무 느리게 실행될 때까지) 필요성을 확인하기 전까지는 성능 향상을위한 프로그램을 작성하지 마십시오. 이것은 tim에 대한 코멘트가 아니며 성능에 대해 이와 같은 것을 고려하는 사람에게 일반적인 코멘트입니다. 사실 더 느리게 실행될 가능성이 큽니다. –

관련 문제